跳轉到主要內容

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。

的原因,是我們的計劃確實完全不同的東西。這裏的代碼如下:

  1. 導入tensorflow模塊和調用它特遣部隊
  2. 創建一個名為x的恒定值,數值35
  3. 創建一個變量y,定義它的方程x + 5
  4. 打印對象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。這是相當多的樣板,但它的工作原理是這樣的:

  1. 導入tensorflow模塊和調用它特遣部隊
  2. 創建一個名為x的恒定值,數值35
  3. 創建一個變量y,定義它的方程x + 5
  4. 初始化變量tf.global_variables_initializer ()(我們將詳細介紹這個)
  5. 創建一個會話為計算值
  6. 運行4中創建的模型
  7. 隻運行變量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),並創建一個變量存儲方程

y = 5 x2−3 x + 15

您可以使用下麵的代碼生成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,我們可視化教訓。

Baidu
map