如果你曾經做過做過深度學習的模型,並試圖將他在本機上訓練一下,因為你覺得你的筆記本性能還可以,於是你開始train你的模型,首先你看到loss下降很慢,每個batch需要花費8.4秒左右的樣子:
然后你的CPU開始狂轉,風扇全功率運行,風聲大作,堅持了幾分鍾實在受不了了,你果斷的關閉了進程,不僅僅是速度比較慢,你可能也和我一樣,真怕電腦給燒掉了,然后,整個世界,清靜了:)
其實深度學習最好,最經濟的訓練方式就是在雲端,找個GPU的機器,安裝搭建環境進行訓練,這也是我之前做項目和使用的方式,但對於深度學習的研究者,開發者來說,不太希望花費太多的時間在驅動安裝,環境配置,包依賴處理這些瑣碎的方面,如果有一兩條命令就可以在雲端開始訓練,那就可以將大部分精力放在模型本身的調整上。
最近嘗試了一下FloydHub,這是一個由Heroku提供的Deep Learning的PAAS平台,可以讓你使用簡單的命令就在本機提交訓練任務,支持Caffe,Tensoflow,Torch等等,CNTK支持還在開發中,可以讓你提交Jupyter,也可以直接提交python腳本,主頁和介紹如下:
對於新用戶,有免費的2個小時的GPU訓練時間,當然后續你可以購買其他計划。下面的部分給大家快速介紹與喜愛如何使用Floyd進行深度學習訓練。
- 第一步當然是注冊了,需要的信息非常簡單,輸入完成后點擊"Sign up",然后進入主界面,需要你驗證一下你的郵箱,驗證完成后后就可以得到你的token:
-
然后需要在你的本機,或者開發及安裝Floyd命令行工具,該工具依賴於Python,假定你已經安裝好了Python,推薦使用Anconda分發版,在本機安裝floyd-cli,使用pip命令安裝即可:
$ pip install -U floyd-cli
-
使用命令行登陸Floyd,他會直接跳轉到FloydHub的登錄頁面,讓你登陸,其實就是獲取CLI的認證token,拷貝token,並粘貼到命令行,完成登陸認證:
$ floyd login
-
進入到FloydHub的頁面,在你開始訓練你的項目之前,你首先需要創建一個項目,我在次創建的項目是RNN的項目myrnnproj:
- 進入到你的項目目錄,初始化你的項目:
$ floyd init myrnnproj
-
在項目初始化完畢的時候,那么我們就可以在遠端的平台上train這個項目了,floyd支持多個不同的深度學習框架,多個版本,另外也支持CPU和GPU,在本例中我使用Tensorflow,而且最新版本1.3訓練,指定參數如下並運行:
$floyd run --mode jupyter --gpu --env tensorflow-1.3
可以看到Floyd會自動上傳你本地的Jupyter代碼,自動初始化環境,然后分配給你一個URL,你就可以訪問你的notebook了,需要注意的是,從這個時候開始,只要你的notebook開着,Floyd就會計費,你也可以到web頁面上查看當前運行的job和job
- 按照Floyd提供的URL,打開我的Jupyter notebook,運行我的training,每個batch大約只需要0.3秒,比我本機快將近30倍:
8 . 從整個過程來看,使用Floyd進行深度學習訓練不需要自己准備和搭建環境,還是非常方便的,而且也提供了很多例子,共初學者快速的上手,比如下面這個風格遷移的例子,大家可以自己嘗試: