美文网首页
Tensorflow 学习(2)

Tensorflow 学习(2)

作者: 法号无涯 | 来源:发表于2017-11-22 22:42 被阅读4次

Computational Graph

TF的编程由两个离散的步骤组成

  1. 搭建computational graph
  2. 运行computational graph

这 computational graph 由多个nodes组成,node可能是某个数据、或者中间的计算值、或者是某项操作。

constant

placeholder

placeholder 是个保证以后会赋予某个值的量,通过对一些placeholder定义好某项操作后可以在session.run()的时候为这些placeholder赋予某个值,并得出运算结果。

variable

因为机器学习里对参数的优化很重要,需要变量类型来存储参数并不时改变它的值。Variable让我们可以在graph里添加可训练的参数。

placeholder 和 variable 的区别在哪儿?placeholder并不能改变,它只是个将来会有某个值的容器一样的东西。
variable需要我们手动初始化:

init = tf.global_variables_initializer()
sess.run(init)

其中init只是一个可以用来初始化的handle(句柄?),需要通过session.run才可以对variable进行初始化。
这里贴上教程里的代码

import tensorflow as tf

a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b # + provides a shortcut for tf.add(a,b)

sess = tf.Session()

print(sess.run(adder_node, {a:3, b: 4.5}))
print(sess.run(adder_node, {a: [1, 3], b: [2, 4]}))

# linear model

W = tf.Variable([.3], dtype=tf.float32)
b = tf.Variable([-.3], dtype=tf.float32)
x = tf.placeholder(tf.float32)
linear_model = W*x + b

init = tf.global_variables_initializer()
sess.run(init)

print(sess.run(linear_model, {x: [1,2,3,4]}))

optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

sess.run(init) # reset values to incorrect defaults.
for i in range(1000):
  sess.run(train, {x: [1, 2, 3, 4], y: [0, -1, -2, -3]})

print(sess.run([W, b]))

相关文章

网友评论

      本文标题:Tensorflow 学习(2)

      本文链接:https://www.haomeiwen.com/subject/tqnwvxtx.html