Tensorflow基本概念理解示例
Tensorflow基本概念理解示例
1.tensorflow的基本组成
TensorFlow代码主要包括两部分:构建图模型和计算图模型。图模型的基本构成是节点,每个节点代表的是一个操作(operation)或者理解成函数,每个节点都有输入输出,每个节点通过线条相连。例如常数节点(constant node)没有输入,输出为常数;变量节点(variable node)可以更新数值;占位符节点(placeholder node)是具有输入的constant node,相当于确定了图的输入。
2.tensorflow的基本命令
(1)init = tf.global_variables_initializer()表示将variable初始化,初始化的数值是作为tf.Variable的输入参数的,tf.global_variables_initializer()只是启动这个初始化的操作。
(2)optimizer = tf.train.GradientDescentOptimizer(0.01)和train = optimizer.minimize(loss)表示设置为梯度下降的更新算法,并对Variable的数值根据LOSS更新一次。
3.tensorflow的计算图命令
在图构建好之后就可以对其进行计算,sess = tf.Session()就是启动图计算的命令,然后可以用sess.run(subgraph)计算任意一个节点或者是中间变量的结果。
4.tensorflow线性回归示例
import numpy as np
import tensorflow as tf
# Model parameters
W = tf.Variable([.3], tf.float32)
b = tf.Variable([-.3], tf.float32)
# Model input and output
x = tf.placeholder(tf.float32)
linear_model = W * x + b
y = tf.placeholder(tf.float32)
# loss
loss = tf.reduce_sum(tf.square(linear_model - y)) # sum of the squares
# optimizer
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# training data
x_train = [1,2,3,4]
y_train = [0,-1,-2,-3]
# training loop
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init) # reset values to wrong
for i in range(1000):
sess.run(train, {x:x_train, y:y_train})
# evaluate training accuracy
curr_W, curr_b, curr_loss = sess.run([W, b, loss], {x:x_train, y:y_train})
print("W: %s b: %s loss: %s"%(curr_W, curr_b, curr_loss))