第五步 tensorflow模型的運行機制
來自專欄 深度學習tensorflow實踐
這裡不介紹深度學習的原理,大家請自行觀看吳恩達老師的deeplearning.ai,或斯坦福的CS231。
如果大家想學習Linux系統和python的基礎,推薦莫煩python。想學習數據結構基礎,推薦黑馬人工智慧。
在上一章中,我們簡單介紹了計算圖原理。
這一章,我會主要介紹tensorflow的計算圖的運行機制。
在建立好計算圖模型後,整個模型會保存在內存中。tensorflow中計算圖模型和輸入、輸出數據都是分離的,這有利於單獨保存和優化模型。具體的工作運行機制如下圖所示。圖片來源於李金洪的《深度學習之TensorFlow》。
(1)輸入:tensorflow中,運行(session)與計算圖的交互是使用注入機制(feed)。先在計算圖的構建中使用佔位符函數,即先定義數據的類型,但不把數據輸入計算圖中。然後在構建完整個計算圖後,運行(session)整個模型時才把數據注入(feed)入計算圖。佔位符函數如下所示:
tf.placeholder(數據類型)
(2)調用運算資源:因為CPU是自動調用的,這裡主要說一下GPU的調用。想要調用GPU,需要安裝tensorflow-gpu版本,同時配置好cuda和cuDNN,具體教程請點擊這裡查看。調用函數(GPU名稱為gpu:0)如下所示:
with tf.device(/gpu:0):
根據以上函數,也能調用多塊GPU。
(3)運行(session)函數和輸出:用一個簡單的hello world程序介紹一下session函數
import tensorflow as tfhelloworld = tf.constant(hello world) #定義一個字元串常量sess = tf.Session() #建立一個sessionprint (sess.run(helloworld)) #通過tf.Session中的run函數來運行sess.close() #關閉session
在下一章中,會主要介紹tensorflow在構建計算圖時使用的函數。
推薦閱讀:
TAG:TensorFlow | 機器學習 | 深度學習DeepLearning |