Shell程序小技巧:讓機器人學習成效達到頂峯

Shell程序小技巧:讓機器人學習成效達到頂峯

在機器學習的實踐過程中,用好 Shell 能幫你很多節省時間。最近,有位來自 ETHZ 的學生分享了一些 Shell 小技巧。對工程師來說,這些技巧更重要的是讓你的思維從瑣碎小事中解脫出來,大大提高了工作效率。下面就是他分享的 4 個 tips。由於本文中涉及到的 shell 腳本過多,你可以去文末地址中查看所有腳本的程序代碼。
Shell程序小技巧:讓機器人學習成效達到頂峯
在千萬文件中,快速抓到你要的那個
當你在遠程服務器上監視程序運行時,如果想把一個遠程文件抓取來查看,通常你會怎麼做?記下文件路徑,打開終端,用 rsync 之類的工具同步到本地,再到文件瀏覽器中查看。實際上不必這麼麻煩。只需要事先寫好幾個 shell 腳本,就可以避免重複的機械勞動。在這裏強烈推薦 iTerm 2,它比 Mac 自帶的終端要強大得多,可以指定某個觸發關鍵詞執行某個相應的命令。
Shell程序小技巧:讓機器人學習成效達到頂峯
先在遠程服務器上設置一個腳本 t 。當我們輸入 r awesome_video.mp4 時,它會搜索 awesome_video.mp4 文件所在路徑,並連同主機名以字符串 rtransfer <host> <path> 的形式打印出來。
Shell程序小技巧:讓機器人學習成效達到頂峯
rtransfer 作爲 iTerm2 的觸發關鍵詞,解析出主機和路徑,然後調用另一個本地腳本 t2。腳本 t2 將這個影片文件傳輸到臨時目錄,然後在該目錄中打開 Finder。
Shell程序小技巧:讓機器人學習成效達到頂峯
使用 iTerm 2 觸發關鍵詞功能調用腳本,可以大大提升效率,而你要做的只是在前期花費時間定製腳本。

遠程訪問 TensorBoard
除了抓取遠程文件,另一個讓人痛苦的是訪問遠程服務器上的 TensorBoard 實例。你可以設置 SSH 端口轉發,但是哪個端口對應哪個服務器?它們都在 Docker 容器中。ngrok可以讓你把訪問本地端口變成訪問 URL ,比如輸入 ngrok http 6006 後,它會爲你生成一個 URL 網址 ,你可以在 這個網址 中查看 TensorBoard 實例。結合腳本 n,以更快的速度啓動 ngrok,然後用腳本 tb 打開 Web 瀏覽器,啓動 TensorBoard,在十秒內就能從運行目錄轉到顯示圖形。
Shell程序小技巧:讓機器人學習成效達到頂峯
ngrok 有個缺點是它一次只能允許一個對話筐,因此在使用前需要刪除上一個 ngork 程序 。如果你忘記在另外一臺服務器上刪除 ngrok,可能會比較麻煩。

用 tbplot 代替 TensorBoard 繪圖
對於運行大量 metrics 的情形,我們需要等待較長時間讓 TensorBoard 加載所有圖形。如果使用 tbplot 腳本,速度會快很多,並且能直接生成圖像文件。

tbplot 實際上調用的是 Matplotlib,缺點是目前只能生成標量圖。

自動監測程序會不會讓計算機停機
運行程序代碼時,最耗費精力的事情就是是擔心遇到了錯誤並停機,因此需要不斷檢查他們的運行情況。當程序出現問題時,通過警報自動監控可以緩解這種擔憂。一般可以把警報發送到郵箱中,爲了避免這麼麻煩,可以使用 sqs-alerts,它依靠 AWS AWS Simple Queue 服務存儲和接收消息。在每臺遠程機器上,使用 cron 運行一個腳本,監控日誌並在檢測到運行中斷時向隊列發送消息。然後在本地機器上運行一個服務來監控隊列,並在收到消息時彈出警報。內容來源:http://www.cafes.org.tw/info.asp
Shell程序小技巧:讓機器人學習成效達到頂峯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章