Tensorflow(一)
关于Tensorflow
- 什么是Tensorflow?
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
- 什么是数据流图(Data Flow Graph)?
数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。 - TensorFlow的特征
高度的灵活性、真正的可移植性(Portability)、将科研和产品联系在一起、自动求微分、多语言支持、性能最优化
“Hello world”
import tensorflow as if #导入tensorflow
message = tf.constant('Hello tensorflow!')
#图形定义部分,创建计算图
#tf.constant 表示打印常量字符串
#tensor 常量消息由字符串“Hello tensorflow!”构成。
with tf.Session() as sess:
print(sess.run(message).decode())
#with tf.Session() as sess:利用with语句定义session为了执行计算图
#sess.run() 语句用来执行计算图
#使用with关键字创建会话,最后在会话中执行以上计算图
tensorflow代码的主要构成
- 第一部分 import 模块包含代码将使用的所有库,在目前的代码中只使用 TensorFlow,其中语句 import tensorflow as if 则允许 Python 访问 TensorFlow 所有的类、方法和符号。
- 第二个模块包含图形定义部分,创建想要的计算图。
- 第三个模块是通过会话执行计算图,这部分使用 with 关键字创建了会话,最后在会话中执行以上计算图。
警告消息
不想看到警告消息。
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
用于忽略级别 2 及以下的消息(级别 1 是提示,级别 2 是警告,级别 3 是错误)。
输出
该程序打印计算图执行的结果,计算图的执行则使用 sess.run() 语句, sess.run 求取 message 中所定义的 tensor 值;计算图执行结果输入到 print 函数,并使用 decode 方法改进,print 函数向 stdout 输出结果:
b'Hello tensorflow!'
输出结果是一个字节字符串。要删除字符串引号和“b”(表示字节,byte)只保留单引号内的内容,可以使用 decode() 方法。
print(sess.run(message).decode())