tf.placeholder()

原文地址

分类目录——TensorFlow

之前说过TensorFlow这个架构会先定义所有运算过程(option),最后通过run(option)来动态执行,这个形式有些像普通函数与main的概念,普通函数只是静态的定义在那,只有当main被调用时,写在main中的函数才回被真正的动态调用。

本文要说的 tf.placeholder() 就有些像普通函数中的形式参数,在定义函数时的参数只是形式上的参数,目的是通过指代的方式表达清楚运算流程,实际上并没有分配值空间(函数定义时),只有在函数执行时才传入真实值(真正占用内存空间的值)进行运算。

下面通过一个程序实例来说明tf.placeholder()的用法

import tensorflow as tf

# 即使程序中只有一个常量tf.constant(),不断的迭代也会让计算图存储大量的常量
# 于是就有了placeholder这种机制,x = tf.placeholder(tf.float32, [数据规格])
# 它只是提供存放 量的位置,指明数据类型和数据维度,其数据在程序执行的时候再指定(通过feed_dict={x:3,,,}的方式)

input1 = tf.placeholder(tf.float32) # 通过tf.placeholder()定义形式变量
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.]}))
    # 通过run()执行运算,通过feed_dict=传一个字典类型的参数
    # 注:这里output运算只进行了一步,在复杂操作中,output所有迭代用到的形式变量都要通过feed_dict传入值

参考文献

Placeholder 传入值

发布了102 篇原创文章 · 获赞 68 · 访问量 5119

猜你喜欢

转载自blog.csdn.net/BBJG_001/article/details/104231421