美文网首页
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