用英偉達Jetson Nano運行PyTorch&Fast.ai
原作 Interogativ
郭一璞 編譯
量子位 報道 | 公眾號 QbitAI
英偉達Jetson Nano,作為老黃家最便宜的硬體,只要99美元。
看到便宜就想撿,拿到手裡怎麼玩?
造機器人、造小車、在家裡DIY一個語音控制的窗帘,都得先裝輪子。
如果你使用的框架是PyTorch,那你最好再裝一個Fast.ai。
Fast.ai是在PyTorch上非常好用的深度學習庫,來自MOOC平台Fast.ai,只要一個API,就包含了所有常見的深度學習應用。
那麼,拿到Jetson Nano之後,如何把輪子部署上去呢?一位名叫Interogativ的用戶就把用它運行PyTorch 1.0和Fast.ai 1.0的攻略發在了Fast.ai的論壇上,量子位全文編譯如下:
英偉達Jetson Nano,配備了ARM Cortex A57處理器和4G內存,CUDA和PyTorch兩者都可以在上面運行,這塊開發板有難以置信的價值。
當然,你也可以用它來運行截至2019年4月最新最好的PyTorch和Fast.ai版本,這裡是攻略。本攻略僅適用於Python 3,如果你沒有Linux經驗,不知道如何使用SSH,不知道IP網路的原理或者IP地址是什麼,不建議用本攻略來安裝。
軟硬體準備
1、花99美元買一塊英偉達Jetson Nano,現在國內已經可以買到了,當然,價格會比99美元(665人民幣)要貴一點。
2、一張64G的Micro SD卡,確保它是class 10或者更高級別。
SD卡速度等級,來自SD協會網站
3、USB鍵盤,就台式機上那種。
4、2.5Amp電源線,帶一個Micro-USB插頭。
5、一個HDMI或者DisplayPort連接線和顯示器。
6、連網:乙太網網線,無線路由器或者HUB,這塊板子沒有本機無線支持,所以請確保你能用有線網路。
7、能插Micro SD卡的PC,不能插SD卡的話你還需要準備讀卡器。
setup_swapfile.sh
fastai_jetson.sh
setup_jupyter.sh
jetson_headless.sh
jupyter_notebook_config.py
當然,得記住你的存儲路徑。
可以開箱啦
你的新板子到貨之後,無視裡面自帶的紙架,找一些防靜電的泡沫塑料,其他的防靜電的材料也行,把你的板子放上去。
去文末傳送門裡複製英偉達開發者網站Jetson Nano開發套件指南的鏈接到瀏覽器打開,按照裡面寫的一步一步操作,確保:
1、下載帶有SD卡映像的Nvidia zip文件。
2、按照說明把這些文件裝到SD卡里。
3、將SD卡插入Nano,插上USB鍵盤、顯示器和網線。
4、開機,接受各種許可協議之類的。
5、設置用戶名密碼,別忘了。
聯網之後
1、在網路設置里找到你Nano的IPV4地址,記下來,或者如果你懂IP網路的話,設置一個固定的IP地址。
2、用PC終端程序打開與Jetson Nano的SSH會話。
3、用文件傳輸軟體把之前下載的zip文件傳到Nano的用戶主目錄下。
4、通過SSH把你的PS和Nano的IP地址連起來。
5、從控制台或通過SSH連接,為剛剛下載的腳本設置執行許可權:
設置交換文件
Nano只有4GB的RAM(GPU共享),你需要設置一個交換文件,如果已經有了就跳過此步驟。你可以從終端會話中運行setup_swapfile.sh:
確保這一步只進行一次,因為腳本里沒寫檢查是否已設置,你可以執行以下操作檢查是否設置了交換文件:
這時候你就應該看到創建了一個8GB的交換文件。
安裝PyTorch和Fast.ai
如果這會兒你就想安裝標準的Fast.ai和PyTorch,那就裝吧,反正裝不上。
這會兒,標準的pip命令根本沒法用,但是如果你只是運行fastai_jetson.sh腳本,就可以把倆都裝上。這個過程需要幾個小時,所以不用屏住呼吸。
安裝Jupyter筆記本
安裝好Fast.ai後,它會告訴你:
這是因為Jupyter安裝不會導出運行所需的shell變數。所以現在,關閉所有終端、SSH會話等,從圖形界面重啟Nano。重啟完了就從圖形界面打開終端,然後:
1、確保您下載的jupyter_notebook_config.py文件位於Nano的主目錄中。
2、運行./setup_jupyter.sh。
這也得一陣兒,所以這裡也不用屏住呼吸。
此腳本的最後一步需要Jupyter密碼,記住:
不是Jupyter登錄密碼!
不是Jupyter登錄密碼!
不是Jupyter登錄密碼!
就是設置一個單獨的密碼,你可以用這個密碼在你網路上的任何PC上登錄Jupyter筆記本,設置好密碼後記住它。
默認的Jupyter筆記本安裝只能從控制台或圖形界面登錄,之前下載的修改後的jupyter_notebook_config.py文件和腳本安裝可以從你網路上的任何計算機登錄。
運行Jupyter筆記本的話,需要打開終端或SSH實例並運行:
如果它沒有運行,可能是因為你沒有退出後再次登錄。
好了,現在你可以運行PyTorch和Fast.ai了。
但如果你像我一樣,你不需要在Nano上使用圖形界面,並且想把所有內存都拿來跑程序的話,就接著往下看。
關於Python,Pip和VirtualEnv
一些有經驗的Python用戶習慣於虛擬環境(virtualenv,conda),它要求您在安裝或運行軟體之前激活「source activate」,我們現在還沒安裝,其中一個副作用是pip和Python命令將在活動環境中自動運行Python 3或pip 3。
你必須用pip3和Python3分別運行pip和Python。因此,如果你正在運行一些使用!python xyz的筆記本,除非你將代碼更改為!python3 xyz,否則它將無效。
存儲空間不是一切,但絕對非常重要:
過去,比如說2010年,4GB的內存很大。如果不在這塊板子上跑GPU,那就足以讓筆記本電腦運行良好(8 GB的交換文件有很大幫助)。但是你要想跑CUDA,那就沒法在交換磁碟上運行,因此它佔滿了4GB的每個位元組。
所以,為了省下一些存儲空間,放棄圖形界面吧,通過SSH用遠程控制台操作。
現在,如果你準備好了,就找到最後一個腳本jetson_headless.sh,運行它,卸載圖形界面,還能順帶清除300多M的不必要的軟體包。
運行之後,重新啟動,你就能擁有Nano控制台訪問許可權,現在機器只佔用了大約378M的內存,留下了3.6G左右的空間可以運行PyTorch和Fast.ai。
1、運行
2、重啟,用SSH連接Nano。
最後說明一下,本文發布的2019年4月,這種方法是可以安裝PyTorch 1.0和Fast.ai 1.0的,如果以後版本更新了或者需要裝別的東西,歡迎去原文git repo~
傳送門
攻略原文:
https://forums.fast.ai/t/share-your-work-here/27676/1274
Tera Term
https://ttssh2.osdn.jp/index.html.en
WinSCP
https://winscp.net/eng/docs/lang:chs
英偉達開發者網站Jetson Nano開發套件指南
https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit
—完—
活動報名|多模態視頻人物識別
訂閱AI內參,獲取AI行業資訊
加入社群
量子位AI社群開始招募啦,量子位社群分:AI討論群、AI 行業群、AI技術群;
歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「微信群」,獲取入群方式。(技術群與AI 行業群需經過審核,審核較嚴,敬請諒解)
喜歡就點「好看」吧 !
※用C+實現強化學習,速度不亞於Python,這裡有個框架可用
※DeepMind綜述無監督學習:通用智能路上的踏腳石,讓AI更聰明
TAG:量子位 |