在機(jī)器學(xué)習(xí)的實(shí)踐過(guò)程中,用好Shell能幫你很多節(jié)省時(shí)間。
最近,有位來(lái)自ETHZ的學(xué)生分享了一些Shell小技巧。對(duì)程序員來(lái)說(shuō),這些技巧更重要的是讓你的思維從瑣碎小事中解脫出來(lái),大大提高了工作效率。
下面就是他分享的4個(gè)tips。由于本文中涉及到的shell腳本過(guò)多,你可以去文末地址中查看所有腳本的源代碼。
抓取遠(yuǎn)程文件
當(dāng)你在遠(yuǎn)程服務(wù)器上監(jiān)視程序運(yùn)行時(shí),如果想把一個(gè)遠(yuǎn)程文件抓取到本地查看,通常你會(huì)怎么做?
記下文件路徑,打開(kāi)終端,用rsync之類(lèi)的工具同步到本地,再到文件瀏覽器中查看。
實(shí)際上不必這么麻煩。只需要事先寫(xiě)好幾個(gè)shell腳本,就可以避免重復(fù)的機(jī)械勞動(dòng)。
在這里強(qiáng)烈推薦iTerm 2,它比Mac自帶的終端要強(qiáng)大得多,可以指定某個(gè)觸發(fā)關(guān)鍵詞執(zhí)行某個(gè)相應(yīng)的命令。
iTerm 2下載地址:https://www.iterm2.com/
先在遠(yuǎn)程服務(wù)器上設(shè)置一個(gè)腳本t。當(dāng)我們輸入r awesome_video.mp4時(shí),它會(huì)搜索awesome_video.mp4文件所在路徑,并連同主機(jī)名以字符串rtransfer
rtransfer作為iTerm2的觸發(fā)關(guān)鍵詞,解析出主機(jī)和路徑,然后調(diào)用另一個(gè)本地腳本t2。腳本t2將這個(gè)視頻文件傳輸?shù)脚R時(shí)目錄,然后在該目錄中打開(kāi)Finder。
使用iTerm 2觸發(fā)關(guān)鍵詞功能調(diào)用腳本,可以大大提升效率,而你要做的只是在前期花費(fèi)時(shí)間定制腳本。
遠(yuǎn)程訪問(wèn)TensorBoard
除了抓取遠(yuǎn)程文件,另一個(gè)讓人痛苦的是訪問(wèn)遠(yuǎn)程服務(wù)器上的TensorBoard實(shí)例。你可以設(shè)置SSH端口轉(zhuǎn)發(fā),但是哪個(gè)端口對(duì)應(yīng)哪個(gè)服務(wù)器?它們都在Docker容器中。
ngrok可以讓你把訪問(wèn)本地端口變成訪問(wèn)URL,比如輸入ngrok http 6006后,它會(huì)為你生成一個(gè)URL網(wǎng)址http://683acac3.ngrok.io,你可以在這個(gè)地址中查看TensorBoard實(shí)例。
結(jié)合腳本n,以更快的速度啟動(dòng)ngrok,然后用腳本tb打開(kāi)Web瀏覽器,啟動(dòng)TensorBoard,在十秒內(nèi)就能從運(yùn)行目錄轉(zhuǎn)到顯示圖形。
ngrok有個(gè)缺點(diǎn)是它一次只能允許一個(gè)會(huì)話,因此在使用前需要?dú)⑺郎弦粋€(gè)ngork進(jìn)程。如果你忘記在另外一臺(tái)服務(wù)器上殺死ngrok,可能會(huì)比較麻煩。
ngrok下載地址:https://ngrok.com/
用tbplot代替TensorBoard繪圖
對(duì)于運(yùn)行大量metrics的情形,我們需要等待較長(zhǎng)時(shí)間讓TensorBoard加載所有圖形。如果使用tbplot腳本,速度會(huì)快很多,并且能直接生成圖像文件。
tbplot實(shí)際上調(diào)用的是Matplotlib,缺點(diǎn)是目前只能生成標(biāo)量圖。
tbplot下載地址:https://github.com/mrahtz/tbplot
自動(dòng)化崩潰監(jiān)測(cè)
運(yùn)行代碼時(shí),最耗費(fèi)精力的事情就是是擔(dān)心遇到了錯(cuò)誤并崩潰,因此需要不斷檢查他們的運(yùn)行情況。
當(dāng)程序出現(xiàn)問(wèn)題時(shí),通過(guò)警報(bào)自動(dòng)監(jiān)控可以緩解這種擔(dān)憂。一般可以把警報(bào)發(fā)送到郵箱中,為了避免這么麻煩,可以使用sqs-alerts,它依靠AWS AWS Simple Queue服務(wù)存儲(chǔ)和接收消息。
在每臺(tái)遠(yuǎn)程機(jī)器上,使用cron運(yùn)行一個(gè)腳本,監(jiān)控日志并在檢測(cè)到運(yùn)行中斷時(shí)向隊(duì)列發(fā)送消息。然后在本地機(jī)器上運(yùn)行一個(gè)服務(wù)來(lái)監(jiān)控隊(duì)列,并在收到消息時(shí)彈出警報(bào)。
sqs-alerts下載地址:https://github.com/mrahtz/sqs-alerts
最后,本文使用的所有shell腳本都可以在以下地址中找到:https://github.com/mrahtz/dotfiles/tree/master/.local/bin
-
Linux
+關(guān)注
關(guān)注
87文章
11479瀏覽量
213049 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8497瀏覽量
134227
原文標(biāo)題:4個(gè)Linux Shell小技巧,幫你提高機(jī)器學(xué)習(xí)生產(chǎn)效率
文章出處:【微信號(hào):TheBigData1024,微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)場(chǎng)智慧指路燈桿
新能源時(shí)代,圓柱電池生產(chǎn)設(shè)備如何提升生產(chǎn)效率?
優(yōu)化汽車(chē)點(diǎn)焊生產(chǎn)線,提升制造效率與質(zhì)量
Linux從零到精通:最簡(jiǎn)單的Shell腳本入門(mén)教程

超時(shí)空傳輸秘籍!CANopen轉(zhuǎn)ProfiNET網(wǎng)關(guān),提升機(jī)連接新紀(jì)元來(lái)臨

高效生產(chǎn)秘訣:掌握提升SMT貼片效率的拼板設(shè)計(jì)技巧
工控重磅|望獲實(shí)時(shí)Linux適配AnyControl,大大提升高級(jí)控制+實(shí)時(shí)性

Linux系統(tǒng)中shell命令解析
TCSH shell 編程入門(mén)
提升機(jī)電機(jī)軸承溫度及振動(dòng)監(jiān)測(cè)裝置
shell腳本執(zhí)行的三種方式及區(qū)別
嵌入式學(xué)習(xí)-shell介紹
【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】+ 簡(jiǎn)單建議
廣立微INF-AI助力格科微產(chǎn)品良率提升

評(píng)論