NOTE: 所有内容参考自www.tensorflow.org
基础
tensors
张量(tensors):tensorflow中的数据单元是tensors,tensor的rank指dimensions。
computational graph
CG表示tensorflow的一系列操作流程(flow of tensor),包含a graph of nodes。每个node的输入为0或多个tensors,输出为一个tensor。
import tensorflow as tf
node1 = tf.constant(3.0)
node2 = tf.constant(4.0)
print(node1, node2)
session
session用于执行CG,可以理解为CG的执行平台。session包含tensorflow在运行过程中的控制和状态信息。
sess = tf.session()
sess.run([node1, node2])
argument of run method
-feed_dict:作为run的一个参量,为placeholder赋值。
print(sess.run(adder_node, {a: 3, b: 4.5}))
TensorBoard
显示CG的示意图。
placeholders
A placeholder is a promise to provide a value later. 可以认为placeholder是一个预申请的空间。
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b
Variables
Variables用于记录动态的可训练参数。
w = tf.variable([.3], dtype=tf.float32)
b = tf.variable([-.3], dtype=tf.float32)
x = tf.placeholder(tf.float32)
linear_model = w * x + b
variables不会被自动初始化,需要手动初始化。其中init是个句柄handle,必须要执行session,值才会被初始化。
init = tf.global_variables_initializer()
sess.run(init)
variables的值可以被更新
fixW = tf.assign(W, [-1.])
fixb = tf.assign(b, [1.])
sess.run([fixW, fixb])
print(sess.run(loss, {x: [1,2,3,4], y: [0,-1,-2,-3]}))
optimizers
optimizers提供CG参数的调整方法,例如gradient descent。tensorflow提供tf.gradients自动生成梯度。
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
for i in range(1000):
sess.run(train, {x: [1,2,3,4], y: [0,-1,-2,-3]})
print(sess.run([w, b]))