TensorFlow1

TensorFlow

Tensorflow是一个开源软件库,它使用数据流图的形式进行数值计算。

什么是数据流图(Data Flow Graph)

TensorFlow1

  • 节点(Nodes):表示数学运算操作符
  • 边(Edges):用于传送节点之间的多维数组,即张量。

安装TensorFlow

  • CPU版本:pip install --upgrade tensorflow
  • GPU版本:pip install --upgrade tensorflow-gpu

检查安装以及版本

>>> import tensorflow as tf
>>> tf.__version__
'1.3.0'

利用TensorFlow打印‘Hello World!’

# 创建一个constant运算符(op)
# 这个op,作为一个node,添加到graph中
hello = tf.constant('Hello, TensorFlow!')

# 启动TF进程(session)
sess = tf.Session()

# 运行op,并输出结果
print(sess.run(hello))
b'Hello, TensorFlow!'

b'String': 'b'表示字节符。

计算图(Computational Graph)

TensorFlow1

# 1.使用TensorFlow运算符op搭建graph
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
node3 = tf.add(node1, node2)

# 2.丢入数据,并运行graph:sess.run(op)
# 3.自动更新graph中的变量并返回
sess = tf.Session()
print('sess.run(node1, node2):', sess.run([node1, node2]))
print('sess.run(node3):', sess.run(node3))
sess.run(node1, node2): [3.0, 4.0]
sess.run(node3): 7.0

TensorFlow运行机制

  • 1.使用TensorFlow运算符op搭建graph
  • 2.丢入数据,并运行graph:sess.run(op)
  • 3.自动更新graph中的变量并返回值

TensorFlow1

占位符(Placeholder)

# 1.使用TensorFlow运算符op搭建graph
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = tf.add(a, b)

# 2.丢入数据,并运行graph:sess.run(op, feed_dict{x: x_data})
# 3.自动更新graph中的变量并返回值
print(sess.run(adder_node, feed_dict={a: 3, b: 4.5}))
print(sess.run(adder_node, feed_dict={a: [1, 3], b: [2, 4]}))
7.5
[3. 7.]

TensorFlow机制

  • 1.使用TensorFlow运算符op搭建graph
  • 2.丢入数据,并运行graph:sess.run(op, feed_dict{x: x_data})
  • 3.自动更新graph中的变量并返回值

TensorFlow1

万物皆张量(Everything is Tensor)

Tensors

3    # rank为0的张量,即shape为[]的表量
[1., 2., 3.]    # rank为1的张量;shape为[3]的向量
[[1., 2., 3.], [4., 5., 6.]]    # rank为2的张量;shape为[2, 3]的矩阵
[[[1., 2., 3.]], [[7., 8., 9.]]]    # rank为3的张量,形状为[2, 1, 3]

张量的阶、形状和类型

Tersor Ranks, Shapes, and Types

阶(Ranks)

秩/阶数学名称Python实例
0标量s = 483
1向量v = [1., 2., 3.]
2矩阵m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
33-Tensort = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
nn-Tensor...

形状(Shapes)

RankShape维数示例
0[]0-D0维Tensor; 标量
1[D0]1-D形状为[5]的1维张量
2[D0, D1]2-D形状为[3, 4]的2维张量
3[D0, D1, D2]3-D形状为[1, 4, 3]的3维张量
n[D0, D1, ..., Dn-1]n-D形状为[D0, D1, ..., Dn-1]的n维张量

类型(Types)

数据类型Python数据类型描述
FLOATtf.float3232位浮点型
DOUBLEtf.float6464位浮点型
INT8tf.int8有符号8位整型
INT16tf.int16有符号16位整型
INT32tf.int32有符号32位整型
INT64tf.int64有符号64位整型

相关推荐