iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
1
Google Developers Machine Learning

初心者的GDC攻略系列 第 16

Day16: Graph x Eager x Debugger

  • 分享至 

  • xImage
  •  

TensorFlow這麼好用,我該從哪種模式入手?

如同前面提到的,目前的TensorFlow,在PyTorch的推波助瀾下,推出更容易讓新手快速上手的Eager Execution
從此,TF的世界可以更有效分成互動式生產線式兩種。

  • Graph(生產線式):
    這種方法分工更為細緻,處理資料的人就專心處理資料,而對於資料分析流程的人就專注於靜態圖流就好了。
    此模式下容易提升生產力,對於記憶體或其他資源配置較為經濟;但最大的問題就是不夠直觀,對於型態或資料維度必須先有概念。
    真正執行只有在tf.Session()啟動的期間使用sess.run()才真正執行;其餘時間都只是一些metadata紀錄可能填入的資料。
    舉例如下:
import tensorflow as tf

def fuc(a, b):
    return a + b

with tf.Session() as sess:
    a = tf.constant([
        [1, 2, 3, 4],
        [4, 2, 3, 1]
    ])
    b = tf.constant([
        [9, 4, 3, 5],
        [6, 2, 3, 1]
    ])
    c = fuc(a, b)
    print(c)
    print(sess.run(c))

對應的結果:

Tensor("add:0", shape=(2, 4), dtype=int32)
[[10  6  6  9]
 [10  4  6  2]]

這種非即時性對於剛接觸的使用者需要更多的時間適應,特別是程式碼當中出現for-loop的狀況。

  • Eager(互動式)

寫程式哪有不出錯,請賜給我一個好用的除錯器吧

這邊提供大家兩個可能的方法:

  1. pdb (Python debugger)
    這是很傳統的Python除錯器,而目前TensorFlow支援最完整的程式語言正式Python。
  2. from tensorflow.python import debug as tf_debug

上一篇
Day15: 張量 x 開源 x 分散
下一篇
Day17: 簡便 x 高階 x 快速
系列文
初心者的GDC攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言