tf.placeholder 解釋

Tensorflow的設計理念稱之爲計算流圖,在編寫程序時,首先構築整個系統的graph,代碼並不會直接生效,這一點和python的其他數值計算庫(如Numpy等)不同,graph爲靜態的,類似於docker中的鏡像。

然後,在實際的運行時,啓動一個session,程序纔會真正的運行。

這樣做的好處就是:避免反覆地切換底層程序實際運行的上下文,tensorflow幫你優化整個系統的代碼。

我們知道,很多python程序的底層爲C語言或者其他語言,執行一行腳本,就要切換一次,是有成本的,tensorflow通過計算流圖的方式,幫你優化整個session需要執行的代碼,還是很有優勢的。

所以placeholder()函數是在神經網絡構建graph的時候在模型中的佔位,此時並沒有把要輸入的數據傳入模型,它只會分配必要的內存。等建立session,在會話中,運行模型的時候通過feed_dict()函數向佔位符喂入數據。

tf.placeholder(
    dtype,
    shape=None,
    name=None
)

參數:
dtype:數據類型。常用的是tf.float32,tf.float64等數值類型
shape:數據形狀。默認是None,就是一維值,也可以是多維(比如[2,3], [None, 3]表示列是3,行不定)
name:名稱

示例

import tensorflow as tf
import numpy as np
 
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:[3.], input2: [4.]})

參考:

[1] https://blog.csdn.net/kdongyi/article/details/82343712

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章