佔位符基礎知識
佔位符允許你將值提供到張量流圖中。它們允許你指定有關所輸入值的維度和資料型別的約束。因此,它們在建立神經網路以提供新的訓練示例時非常有用。
下面的示例宣告瞭一個 3 乘 4 張量的佔位符,其元素是(或可以被型別化)32 位浮點數。
a = tf.placeholder(tf.float32, shape=[3,4], name='a')
佔位符不會自己包含任何值,因此在執行會話時為它們提供值非常重要,否則你將收到錯誤訊息。這可以在呼叫 session.run()
時使用 feed_dict
引數來完成,例如:
# run the graph up to node b, feeding the placeholder `a` with values in my_array
session.run(b, feed_dict={a: my_array})
這是一個簡單的例子,顯示了宣告和餵食控制檯器的整個過程。
import tensorflow as tf
import numpy as np
# Build a graph
graph = tf.Graph()
with graph.as_default():
# declare a placeholder that is 3 by 4 of type float32
a = tf.placeholder(tf.float32, shape=(3, 4), name='a')
# Perform some operation on the placeholder
b = a * 2
# Create an array to be fed to `a`
input_array = np.ones((3,4))
# Create a session, and run the graph
with tf.Session(graph=graph) as session:
# run the session up to node b, feeding an array of values into a
output = session.run(b, feed_dict={a: input_array})
print(output)
佔位符采用 3 乘 4 的陣列,然後在節點 b 處將該張量乘以 2,然後返回並列印出以下內容:
[[ 2. 2. 2. 2.]
[ 2. 2. 2. 2.]
[ 2. 2. 2. 2.]]