TensorFlow™在磚
變量
TensorFlow是一種代表計算沒有實際執行,直到問。從這個意義上說,這是一種懶惰的計算,它允許一些偉大的改善運行的代碼:- 更快的計算複雜的變量
- 分布式計算跨多個係統,包括gpu。
- 減少redundency在某些計算
讓我們看一看這個。首先,一個非常基本的python腳本:
x =35y = x +5打印(y)
這個腳本基本上隻是說“創建一個變量x值35,一個新的變量y的值設置為+ 5,目前40歲,和打印出來”。價值40將打印出當你運行這個程序。如果你不熟悉python,創建一個新的文本文件basic_script.py
,複製代碼。將它保存在你的電腦上,運行:
python basic_script.py
注意,路徑(即。basic_script.py
)必須參考的文件,如果在代碼
文件夾中,您可以使用:
python代碼/ basic_script.py
同時,確保你有激活水蟒的虛擬環境。在Linux上,這將使您的提示看起來像:
(tensorenv)(電子郵件保護):~ $
如果是工作,讓我們把它轉換成一個TensorFlow等價的。
進口tensorflow作為特遣部隊x = tf.constant (35、名稱=“x”)y =特遣部隊。變量(x +5、名稱=“y”)打印(y)
運行這個之後,你會得到很多有趣的輸出,類似< tensorflow.python.ops.variables。變量對象在0 x7f074bfd9ef0 >
。這顯然是不價值40。
的原因,是我們的計劃確實完全不同的東西。這裏的代碼如下:
- 導入tensorflow模塊和調用它
特遣部隊
- 創建一個名為x的恒定值,數值35
- 創建一個變量y,定義它的方程x + 5
- 打印對象y的方程
微妙的區別在於y不是給“x + 5的當前值”在我們之前的項目。相反,它實際上是一個等式,這意味著“這個變量計算時,把x的值(然後)和添加5”。y的值的計算是從來沒有真正執行上述程序。
讓我們解決這個問題:
進口tensorflow作為特遣部隊x = tf.constant (35、名稱=“x”)y =特遣部隊。變量(x +5、名稱=“y”)
模型= tf.global_variables_initializer ()與tf.Session ()作為會話:session.run(模型)打印(session.run (y))
我們已經刪除了打印(y)
聲明,而是我們的代碼創建一個會話,實際上計算的價值y
。這是相當多的樣板,但它的工作原理是這樣的:
- 導入tensorflow模塊和調用它
特遣部隊
- 創建一個名為x的恒定值,數值35
- 創建一個變量y,定義它的方程x + 5
- 初始化變量
tf.global_variables_initializer ()
(我們將詳細介紹這個) - 創建一個會話為計算值
- 運行4中創建的模型
- 隻運行變量y和打印出其當前值
上麵的步驟4是一些魔法發生的地方。在這一步中,創建一個圖的變量之間的依賴關係。在這種情況下,變量y取決於變量x,和價值轉換通過添加5。記住這個值沒有計算到第7步,直到那時,隻計算方程和關係。
1)常量也可以是數組。預測這段代碼,然後運行它來確認:
進口tensorflow作為特遣部隊
x = tf.constant ([35,40,45),name =“x”)y =特遣部隊。變量(x +5、名稱=“y”)
模型= tf.global_variables_initializer ()與tf.Session ()作為會話:session.run(模型)打印(session.run (y))
2)生成一個NumPy 10000隨機數(稱為數組x
),並創建一個變量存儲方程
您可以使用下麵的代碼生成NumPy數組:
進口numpy作為np數據= np.random.randint (1000年、大小=10000年)
這數據
變量可以使用上麵列出的問題1。作為一般規則,NumPy應該用於更大的數字列表/數組,因為它是更比列表記憶效率和更快的計算。它還提供了大量的功能(如計算均值)通常不用於列表。
3)你也可以更新變量在循環中,稍後我們將使用機器學習。看看這個代碼,並預測它將做什麼(然後運行它來檢查):
進口tensorflow作為特遣部隊
x = tf.Variable (0、名稱=“x”)
模型= tf.global_variables_initializer ()與tf.Session ()作為會話:session.run(模型)為我在範圍(5):x = x +1打印(session.run (x))
4)使用的代碼(2)和(3),創建一個計算機程序的“滾動”平均水平以下的代碼:np.random.randint (1000)
。換句話說,保持循環,每個循環,電話np.random.randint (1000)
循環一次,目前的平均存儲在一個變量不斷更新每個循環。
5)使用TensorBoard想象圖其中的一些例子。TensorBoard運行,使用命令:tensorboard——logdir =路徑/ /日誌目錄
進口tensorflow作為特遣部隊x = tf.constant (35、名稱=“x”)打印(x)y =特遣部隊。變量(x +5、名稱=“y”)與tf.Session ()作為會話:合並= tf.summary.merge_all ()作家= tf.summary.FileWriter (“/ tmp /基本”session.graph)模型= tf.global_variables_initializer ()session.run(模型)打印(session.run (y))
找出更多關於Tensorboard,我們可視化教訓。