5 月12 日,機器之心聯合華為昇騰學院開設的線上公開課《輕鬆上手開源框架MindSpore》第 6 課完成,王越講師為大家帶來了主題分享《MindSpore可視化工具使用指南》,第 6 課回顧視頻如下:
第六課精選問答
在第六課的QA環節中,有一些問題被大家廣泛提到,王越講師再次做了精選與編輯,供大家參考。
Q1:momentum是SGD?
momentum是SGD的優化方法,主要思想是引入一個積攢歷史梯度的信息動量,來加速SGD。我認為它主要解決了SGD的兩個問題,一個是隨機梯度的方法引入的噪聲,另一個是 SGD在收斂過程中,和我們想要的梯度相比,會有比較大的擺動。
當前mindspore提供既提供了SGD,又提供了momentum
Q2:和TensorBoard有什麼區別?
我認為主要的區別有以下幾點:
從設計思路上來說,TensorBoard主要以插件化的形式來進行構建,它的好處是開發比較方便,功能解耦比較清楚。開發一個新功能,可以很快在TensorBoard添加一個新的頁籤。但是我認為這種模式存在的缺點是不停的添加單個的功能,缺乏總體的使用引導,指導用戶怎樣去一步一步調網絡。 MindInsight在設計上是希望給用戶提供網絡調試和調優的方法論,可以看到MindInsight的入口是從訓練列表開始的,點擊某個訓練後,希望給用戶很清晰的指引:在調試調優的某個階段遇到某個問題時,應該使用哪個功能。
從組件上來說,我認為MindInsight現在有一些特色功能是TensorBoard不具備的,比如說像溯源,數據圖的展示等等。當然MindInsight現在還在比較快速的構建和開發中,會陸續上線很多新的組件。
從生態上來說,TensorBoard和Tensorflow目前主要是服務於GPU/TPU的,MindInsight和MindSpore則需要適配Ascend晶片。晶片的不同會導致在功能上的差異,比如Profiling,MindInsight需要考慮數據下沉等訓練場景的性能展示。
Q3:mindspore支持動態圖嗎?
MindSpore目前是支持動態圖的,我們稱這種執行模式叫Pynative,怎樣使用動態圖模式進行訓練和調試可以參考第三講的內容。MindInsight後續會release Debugger組件,我們可以使用Pynative模式調試腳本,圖模式執行時如果出現異常可以使用MindInsight的Debugger調試。
Q4:數據溯源那裡說明所有訓練都是同樣的數據嗎?
在剛才的講解視頻中,我們看到的數據溯源顯示的是一條直線,說明訓練任務都使用了相同的數據pipeline流程。如果用戶發現可能是因為某個數據增強操作導致訓練異常,改變了數據增強操作,兩次訓練的差別就會體現在數據溯源中。
Q5:目前還有其他profile方式嗎?
目前在Ascend晶片訓練或者推理,可以使用run包中的組件進行profile,但是使用起來會需要一些配置項,結果解析需要依靠腳本完成。MindInsight會首先基於Ascend晶片提供易用的profile能力和結果展示,然後逐步把能力遷移到GPU和CPU。
Q6:nvprof可以配合mindspore嗎?
我個人沒有嘗試過,但是從原理推斷應該是可以的;如果有感興趣的同學可以進行嘗試,我們可以在群組討論。
Q7:訓練中間層可視化?
如果中間層可視化是指的是計算圖的中間層信息,可以使用MindInsight中的計算圖可視組件進行查看。可以點開計算圖,找到感興趣的層,查看節點的名稱、type等信息;
如果中間層可視化指的是中間層權重的變化趨勢,可以使用HistogramSummary算子進行記錄,並使用MindInsight參數分布圖功能查看;
如果中間層可視化指訓練時想看到中間層的計算結果,pynative模式可以配合pdb等在算子執行返回時直接查看,圖模式可以依賴MindInsight後續release的Debugger進行查看。Debugger可以在某個step執行完成後暫停訓練,用戶可以在計算圖上找到感興趣的中間層,點擊節點查看對應的算子輸出。
Q8:mindinsight目前可以在雲上用嗎?
MindInsight作為一個python package,天然支持在雲上使用;我們後續會提供雲上場景的官方支持和說明。
Q9:minsight可以輸出優化後的圖嗎?
是可以的,summary文件中記錄的計算圖是MindSpore前端優化後的圖,如果想查看更多階段的圖,可以在context中打開save_graphs開關,這樣可以得到一些不同優化階段的計算圖文件(後綴名為.pb),可以在MindInsight中將這些計算圖可視化。
Q10:將來能給個加載GE圖的例子嗎?
目前加載GE圖(ge_ir.proto)的功能還處在試用階段,功能成熟後我們會考慮開源,屆時會給出對應的文檔。
第六課PPT如下: