佔位符基礎知識

佔位符允許你將值提供到張量流圖中。它們允許你指定有關所輸入值的維度和資料型別的約束。因此,它們在建立神經網路以提供新的訓練示例時非常有用。

下面的示例宣告瞭一個 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.]]