Tensorflow函數——tf.placeholder()函數


  tf.placeholder()函數

  Tensorflow中的palceholder,中文翻譯為占位符,什么意思呢?

  在Tensoflow2.0以前,還是靜態圖的設計思想,整個設計理念是計算流圖,在編寫程序時,首先構築整個系統的graph,代碼並不會直接生效,這一點和python的其他數值計算庫(如Numpy等)不同,graph為靜態的,在實際的運行時,啟動一個session,程序才會真正的運行。這樣做的好處就是:避免反復地切換底層程序實際運行的上下文,tensorflow幫你優化整個系統的代碼。我們知道,很多python程序的底層為C語言或者其他語言,執行一行腳本,就要切換一次,是有成本的,tensorflow通過計算流圖的方式,可以幫你優化整個session需要執行的代碼。

        在代碼層面,每一個tensor值在graph上都是一個op,當我們將train數據分成一個個minibatch然后傳入網絡進行訓練時,每一個minibatch都將是一個op,這樣的話,一副graph上的op未免太多,也會產生巨大的開銷;於是就有了tf.placeholder(),我們每次可以將 一個minibatch傳入到x = tf.placeholder(tf.float32,[None,32])上,下一次傳入的x都替換掉上一次傳入的x,這樣就對於所有傳入的minibatch x就只會產生一個op,不會產生其他多余的op,進而減少了graph的開銷。

 

  函數形式

1  tf.placeholder(
2       dtype,
3       shape=None,
4       name=None
5   )

  

  函數參數

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

 

  返回

  Tensor類型。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM