美文网首页tensorflow
tensorflow基本用法(2)

tensorflow基本用法(2)

作者: Jasmine晴天和我 | 来源:发表于2019-05-23 16:30 被阅读0次

    Variable

    在tensorflow中只有定义该字符串是变量,它才是变量。
    语法:

    state = tf.Variable()
    #example
    import tensorflow as tf
    state = tf.Variable(0, name='counter') #tf.Variable(initializer,name),参数initializer是初始化参数,name是可自定义的变量名称
    # 定义常量 one
    one = tf.constant(1)
    # 定义加法步骤 (注: 此步并没有直接计算)
    new_value = tf.add(state, one)
    # 将 State 更新成 new_value
    update = tf.assign(state, new_value) #tf.assign(ref, value, validate_shape=None, use_locking=None, name=None)函数完成了将value赋值给ref的作用。其中:ref 必须是tf.Variable创建的tensor,如果ref=tf.constant()会报错!
    

    如果你在 Tensorflow 中设定了变量,那么初始化变量是最重要的!!所以定义了变量以后, 一定要定义init = tf.global_variables_initializer() .
    到这里变量还是没有被激活,需要再在 sess 里, sess.run(init) , 激活 init 这一步

    # 启动图后, 变量必须先经过`初始化` (init) op 初始化,
    # 首先必须增加一个`初始化` op 到图中.
    init_op = tf.global_variables_initializer() 
    
    # 启动图, 运行 op
    with tf.Session() as sess:
      # 运行 'init' op
      sess.run(init_op)
      # 打印 'state' 的初始值
      print (sess.run(state))
      # 运行 op, 更新 'state', 并打印 'state'
      for _ in range(3):
        sess.run(update)
        print(sess.run(state))
    

    Fetch

    '''
    为了取回操作的输出内容, 可以在使用 Session 对象的 run() 调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果. 在之前的例子里, 我们只取回了单个节点 state, 但是你也可以取回多个 tensor:
    '''
    input1 = tf.constant(3.0)
    input2 = tf.constant(2.0)
    input3 = tf.constant(5.0)
    intermed = tf.add(input2,input3)
    mul = tf.multiply(input1, intermed)
    with tf.Session() as sess:
        result = sess.run([mul, intermed])
        print(result)
    

    Feed

    '''
    TensorFlow 还提供了 feed 机制, 该机制 可以临时替代图中的任意操作中的 tensor 可以对图中任何操作提交补丁, 直接插入一个 tensor.
    feed 使用一个 tensor 值临时替换一个操作的输出结果. 你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失. 最常见的用例是将某些特殊的操作指定为 "feed" 操作, 标记的方法是使用 tf.placeholder() 为这些操作创建占位符. 
    '''
    input1 = tf.placeholder(tf.float32) #占位
    input2 = tf.placeholder(tf.float32)
    output = tf.multiply(input1, input2)
    
    with tf.Session() as sess:
        print(sess.run([output], feed_dict={input1:[7.], input2:[2.]})) #喂入数据
    

    相关文章

      网友评论

        本文标题:tensorflow基本用法(2)

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