tensorflow tf.placeholder()(相当于创建变量分配内存空间,但不赋值)
為什么要用placeholder?
Tensorflow的設(shè)計(jì)理念稱之為計(jì)算流圖,在編寫程序時(shí),首先構(gòu)筑整個(gè)系統(tǒng)的graph,代碼并不會直接生效,這一點(diǎn)和python的其他數(shù)值計(jì)算庫(如Numpy等)不同,graph為靜態(tài)的,類似于docker中的鏡像。然后,在實(shí)際的運(yùn)行時(shí),啟動一個(gè)session,程序才會真正的運(yùn)行。這樣做的好處就是:避免反復(fù)地切換底層程序?qū)嶋H運(yùn)行的上下文,tensorflow幫你優(yōu)化整個(gè)系統(tǒng)的代碼。我們知道,很多python程序的底層為C語言或者其他語言,執(zhí)行一行腳本,就要切換一次,是有成本的,tensorflow通過計(jì)算流圖的方式,幫你優(yōu)化整個(gè)session需要執(zhí)行的代碼。
所以placeholder()函數(shù)是在神經(jīng)網(wǎng)絡(luò)構(gòu)建graph的時(shí)候在模型中的占位,此時(shí)并沒有把要輸入的數(shù)據(jù)傳入模型,它只會分配必要的內(nèi)存。等建立session,在會話中,運(yùn)行模型的時(shí)候通過feed_dict()函數(shù)向占位符喂入數(shù)據(jù)。
參考文章:tf.placeholder函數(shù)說明
總結(jié)
以上是生活随笔為你收集整理的tensorflow tf.placeholder()(相当于创建变量分配内存空间,但不赋值)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow tf.name_s
- 下一篇: tensorflow tf.train.