51Testing软件测试论坛
标题:
python从入门到放弃——tensorflow
[打印本页]
作者:
测试积点老人
时间:
2018-10-31 15:55
标题:
python从入门到放弃——tensorflow
最近公司安排学习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-------------------------------------------------------------------------------
五个月后再看这篇文章,虽然现在进步依旧不大,但是感觉之前却说的一塌糊涂.再总结一下.
首先不画一张图是说不明白了.检测零件是否合格,两个特征,建立一个隐藏层,输出层
[attach]119195[/attach]
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的取值
复制代码
作者:
海海豚
时间:
2018-10-31 17:30
谢谢分享~
作者:
qqq911
时间:
2018-11-1 11:48
感谢分享
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2