多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 占位符 虽然常量允许我们在定义张量时提供值,但占位符允许我们创建可在运行时提供其值的张量。 TensorFlow 为`tf.placeholder()`函数提供以下签名以创建占位符: ```py tf.placeholder( dtype, shape=None, name=None ) ``` 例如,让我们创建两个占位符并打印它们: ```py p1 = tf.placeholder(tf.float32) p2 = tf.placeholder(tf.float32) print('p1 : ', p1) print('p2 : ', p2) ``` 我们看到以下输出: ```py p1 : Tensor("Placeholder:0", dtype=float32) p2 : Tensor("Placeholder_1:0", dtype=float32) ``` 现在让我们使用这些占位符定义一个操作: ```py op4 = p1 * p2 ``` TensorFlow 允许使用速记符号进行各种操作。在前面的例子中,`p1 * p2`是`tf.multiply(p1,p2)`的简写: ```py print('run(op4,{p1:2.0, p2:3.0}) : ',tfs.run(op4,{p1:2.0, p2:3.0})) ``` 上面的命令在 TensorFlow 会话中运行`op4`,为`p1`和`p2`的值提供 Python 字典(`run()`操作的第二个参数)。 输出如下: ```py run(op4,{p1:2.0, p2:3.0}) : 6.0 ``` 我们还可以使用`run()`操作中的`feed_dict`参数指定字典: ```py print('run(op4,feed_dict = {p1:3.0, p2:4.0}) : ', tfs.run(op4, feed_dict={p1: 3.0, p2: 4.0})) ``` 输出如下: ```py run(op4,feed_dict = {p1:3.0, p2:4.0}) : 12.0 ``` 让我们看一下最后一个例子,向量被送到同一个操作: ```py print('run(op4,feed_dict = {p1:[2.0,3.0,4.0], p2:[3.0,4.0,5.0]}) : ', tfs.run(op4,feed_dict = {p1:[2.0,3.0,4.0], p2:[3.0,4.0,5.0]})) ``` 输出如下: ```py run(op4,feed_dict={p1:[2.0,3.0,4.0],p2:[3.0,4.0,5.0]}):[ 6\. 12\. 20.] ``` 两个输入向量的元素以元素方式相乘。