對於每天都用RussellCloud跑實驗的我來說,一個頭痛的問題就是每次運行程序前都要在命令行(CLI)敲一系列的命令。

CLI(command-line interface 命令行界面)是指在圖形用戶界面得到普及之前使用最為廣泛的用戶界面,它通常不支持滑鼠,用戶通過鍵盤輸入指令,計算機接收到指令後,予以執行。也有人稱之為字元用戶界面(CUI).

習慣於Windows系統的我,更習慣於用滑鼠操作。想想,每次運行程序前要敲下面的這些命令

尤其是當調參的時候,每次輸入超參數變得特別麻煩。

russell run python -u train_renext_w_d.py --data-dir data/imagenet --data-type imagenet --depth 50 --batch-size 128 --num-group 64 --gpus=0 --model-load-epoch=50 --lr 0.001 --retrain --data limei/A/1:data --gpu

如果初次使用Russell,有沒有一種簡單的方法,不用學習命令行工具的使用就能夠在Russell雲平台運行我們的程序呢?今天,作者就帶大家來一探究竟,看看如何在Russell網頁上完成模型開發訓練,不用再去敲命令。

主要內容

  • 上傳數據集
  • 編輯或者上傳代碼
    • Notebook
    • 代碼文件
  • 提升效率,網頁啟動CLI模式任務並傳入自定義參數
  • 結語

數據是數據科學的起點,首先看看如何通過網頁上傳數據集到Russell。

上傳數據集

  • 首先在網頁上創建一個新項目,項目名稱Russell

  • 在新項目中創建一個任務,模式jupyter。

  • 打開notebook

  • 進入output目錄,選擇數據集上傳,這裡以Minst數據集舉例

  • 可以看到,我們的數據已經上傳完畢,記得點擊保存

這時,我們需要讓上傳的數據不只存在於這一項目中,其他項目也可以使用。這就需要把output中上傳的文件存儲到Russell的數據集庫中,以後只需要導入它就好了,不需要再次上傳。

  • 任務詳情 --> 輸出 --> 生成數據集

這時我們已經通過網頁將數據集上傳到了Russell。

編輯或者上傳代碼

作者發現,在項目開發中,我們完全可以在Russell網頁中編輯代碼,運行程序。比如編輯notebook,代碼等。

Notebook

  • 在Russell項目中新建任務,打開notebook

  • 上傳notebook文件, cnn.ipynb, 通過網頁運行

  • 這一代碼實現用CNN進行Minst分類,代碼來自莫煩Python.

卷積神經網路目前被廣泛地用在圖片識別上, 已經有層出不窮的應用,接著我們就一步一步做一個分析手寫數字的 CNN 吧.

  • 可視化數據,黑色的地方的值都是0, 白色的地方值大於0.

  • 定義網路

  • 訓練

  • 用T-SNE降維, 將高維的CNN最後一層輸出結果可視化

代碼文件

  • 上傳代碼文件,CNN.py

  • 當我們編輯代碼時,可以選擇我們熟悉的編輯器。編輯完成後,一定要點擊右上角的保存按鈕,必須進行保存才能持久化下來給以後的任務使用

  • 新建文件時,可以選擇編輯所用的語言,編輯中記得隨時保存Ctrl+s

  • 最後還是要記得點擊右上角的保存按鈕,點擊保存後,目前工作目錄下的代碼就會保存到新版本裡面,後續任務可以使用新版本的代碼執行任務

  • 打開Terminal, 運行代碼

提升效率,網頁啟動CLI模式任務並傳入自定義參數

這時,我們已經可以通過網頁進行編輯代碼,notebook,進行項目開發了。作者發現,在Russell網頁中,我們可以直接啟動命令行工具,運行代碼。

  • 在網頁新建任務,選擇任務模式Cli,開始運行

小驚喜

對於複雜的任務,Russell還可以直接生成終端命令,再也不用敲命令啦,交給Ctrl+v

  • 新建任務,選擇生成終端命令,複製到終端即可運行,超省心,方便我們下次使用

當修改導入的名稱為data後,數據的地址就變為/input/data/russell.png,這裡以數據為russell.png舉例。 在代碼中從我們設置的地址讀取數據,例如

Data = imread(/input/data/russell.png)

此外,環境參數的功能有沒有試過呢?可以讓我們方便的傳入超參數

  • 選擇添加參數

  • 從環境變數讀取超參數

從環境變數中導入超參數的方法
import os
env_dist = os.environ # environ是在os.py中定義的一個字典

例如,導入我們傳入的超參數lr 作為learning rate

learning_rate = env_dist[lr] # 從字典中提取我們的超參數

  • 運行程序,可以看到超參數都被設置為導入的數值

結語

以上就是不使用命令行工具進行開發的全部內容了,作者在Russell網頁上完成了上傳數據集,編輯notebook和代碼,直接運行程序並傳入自定義超參數。這樣,終於可以不用每次都輸命令運行程序了。作者認為開發工具應該足夠簡單,開發人員的生產力應該被解放出來,如果你還在使用命令行運行任務,不妨試試通過網頁訓練模型,方便又簡單。

推薦閱讀:

查看原文 >>
相关文章