TA的每日心情 | 无聊 1 小时前 |
---|
签到天数: 528 天 连续签到: 1 天 [LV.9]测试副司令
|
最近公司安排学习python,同时研究一下深度学习,人工智能识别,最后的目的就是实现利用机器学习自动完成影像的对别,识别房屋,自动生成地形图等。总之走在时尚最前沿了,说干就干,但是入门的路上坑真的太多,写在这里算是提醒,总结,也可以作为后的某一天的回味吧。
首先感谢一下我的领导,提供了学习环境和机会,感激。
一、利用软件Tesseract-OCR和 模块pytesseract,PIL实现对图片中文字进行识别,程序代码很简单:
- from PIL import Image
- import pytesseract
- #text = pytesseract.image_to_string(Image.open("1.jpg"),lang="chi_sim")
- image = Image.open("1.jpg")
- text = pytesseract.image_to_string(image,lang="chi_sim")
- print(text)
复制代码 软件安装注意的就是tess中要设置中文,然后是环境变量,环境变量真的重要,现在才明白控制台为什么
都不执行相关的命令了,环境变量path中添加,然后 ;隔开输入软件的安装路径。
其实安装都可以利用pip,只是貌似pil这个版本有问题吧,单独下载安装,至于pytesseract则需要打开.py改动里面的文件路径,最后输入图片就可以识别了。
二、其实上面的都是走了弯路,包括接触TensorFlow的安装也走了一些弯路,不过最后还是能用。
TensorFlow的安装方式很多,要有两个软件protocol buffer和bazel。安装一开始使用docker,费尽周折,不过这个软件可以留着使用了。然后用pip安装 直接输入:
pip install tensorflow
安装完毕,环境没配置好,也许是方法太复杂,越复杂越容易出问题。
TensorFlow使用
首先是载入
import tensorflow as tf #使用tf代替模块名称
graph (图表) 查看计算图 创建计算图
tf.get_default_graph 获取计算图
创建计算图
g1 = tf.graph
with g1.as_default():#定义g1中的变量V
v = tf.get_variable(
"v",initializer = tf.zeros_initializer(shape=[1]))#初始化值为0
#读取
with tf.Session(graph=g1) as sess:
tf.initializer_all_variable().run()
with tf.variable_scope("",reuse=ture) :
print(sess.run(tf.get_variable("v")))
--------------------------------------------分割线---2018.10.19-------------------------------------------------------------------------------
五个月后再看这篇文章,虽然现在进步依旧不大,但是感觉之前却说的一塌糊涂.再总结一下.
首先不画一张图是说不明白了.检测零件是否合格,两个特征,建立一个隐藏层,输出层
x1,x2输入层矩阵二维的x = [[0.7,0.9]]
接着到隐藏层,其实就是输入层到隐藏层之间的权重组成的矩阵w1,和输入层的二维矩阵x进行计算,,同理从隐藏层到输出层也是.因此利用TensorFlow进行定义矩阵并计算代码如下.
- import tensorflow as tf
- #,stddev=1,seed=1))#两个输入,三个节点,形成二行三列的矩阵,stddve,标准差,seed随机种子
- w1 = tf.Variable(tf.random_normal([2,3]))
- #三个节点,一个输出定义一个三行一列的矩阵.
- w2 = tf.Variable(tf.random_normal([3,1]))
- #x就是输入层的二维矩阵
- x = tf.constant([[0.7,0.5]])
- #tf.matmul()计算矩阵乘法
- a = tf.matmul(x,w1)#输入层到隐藏层的计算
- y = tf.matmul(a,w2)#隐藏层到输出层的计算
-
- with tf.Session() as sess:#定义会话,利用上下文管理器实现资源回收
- sess.run(w1.initializer)#变量需要初始化,x为常量不需要
- sess.run(w2.initializer)
- print(sess.run(y))#利用此方法得到y的取值
复制代码
|
|