當前位置:
首頁 > 科技 > 4個Shell小技巧,幫你提高機器學習生產效率

4個Shell小技巧,幫你提高機器學習生產效率

曉查 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

在機器學習的實踐過程中,用好Shell能幫你很多節省時間。

最近,有位來自ETHZ的學生分享了一些Shell小技巧。對程序員來說,這些技巧更重要的是讓你的思維從瑣碎小事中解脫出來,大大提高了工作效率。

下面就是他分享的4個tips。由於本文中涉及到的shell腳本過多,你可以去文末地址中查看所有腳本的源代碼。

抓取遠程文件

當你在遠程伺服器上監視程序運行時,如果想把一個遠程文件抓取到本地查看,通常你會怎麼做?

記下文件路徑,打開終端,用rsync之類的工具同步到本地,再到文件瀏覽器中查看。

實際上不必這麼麻煩。只需要事先寫好幾個shell腳本,就可以避免重複的機械勞動。

在這裡強烈推薦iTerm 2,它比Mac自帶的終端要強大得多,可以指定某個觸發關鍵詞執行某個相應的命令。

iTerm 2下載地址:https://www.iterm2.com/

先在遠程伺服器上設置一個腳本t。當我們輸入r awesome_video.mp4時,它會搜索awesome_video.mp4文件所在路徑,並連同主機名以字元串rtransfer

的形式列印出來。

rtransfer作為iTerm2的觸發關鍵詞,解析出主機和路徑,然後調用另一個本地腳本t2。腳本t2將這個視頻文件傳輸到臨時目錄,然後在該目錄中打開Finder。

使用iTerm 2觸發關鍵詞功能調用腳本,可以大大提升效率,而你要做的只是在前期花費時間定製腳本。

遠程訪問TensorBoard

除了抓取遠程文件,另一個讓人痛苦的是訪問遠程伺服器上的TensorBoard實例。你可以設置SSH埠轉發,但是哪個埠對應哪個伺服器?它們都在Docker容器中。

ngrok可以讓你把訪問本地埠變成訪問URL,比如輸入ngrok http 6006後,它會為你生成一個URL網址http://683acac3.ngrok.io,你可以在這個地址中查看TensorBoard實例。

結合腳本n,以更快的速度啟動ngrok,然後用腳本tb打開Web瀏覽器,啟動TensorBoard,在十秒內就能從運行目錄轉到顯示圖形。

ngrok有個缺點是它一次只能允許一個會話,因此在使用前需要殺死上一個ngork進程。如果你忘記在另外一台伺服器上殺死ngrok,可能會比較麻煩。

ngrok下載地址:https://ngrok.com/

用tbplot代替TensorBoard繪圖

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

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

tbplot下載地址:https://github.com/mrahtz/tbplot

自動化崩潰監測

運行代碼時,最耗費精力的事情就是是擔心遇到了錯誤並崩潰,因此需要不斷檢查他們的運行情況。

當程序出現問題時,通過警報自動監控可以緩解這種擔憂。一般可以把警報發送到郵箱中,為了避免這麼麻煩,可以使用sqs-alerts,它依靠AWS AWS Simple Queue服務存儲和接收消息。

在每台遠程機器上,使用cron運行一個腳本,監控日誌並在檢測到運行中斷時向隊列發送消息。然後在本地機器上運行一個服務來監控隊列,並在收到消息時彈出警報。

sqs-alerts下載地址:https://github.com/mrahtz/sqs-alerts

最後,本文使用的所有shell腳本都可以在以下地址中找到:

https://github.com/mrahtz/dotfiles/tree/master/.local/bin

訂閱AI內參,獲取AI行業資訊

購買AI書籍

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

喜歡就點「好看」吧 !

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量子位 的精彩文章:

你的線性代數魔法書,極度易吸收:想讓圖像怎麼動,它就怎麼動

TAG:量子位 |