離線狀態下在伺服器上部署深度學習所需python包和資料集

Leepupupu發表於2020-11-10

所解決問題

最近,想在學校伺服器上執行網路上其他人寫的基於YOLOv3的目標識別程式,通過github得到了程式碼,但是遇到的問題是:學校的伺服器是隻能內網連線,無法通過Anaconda 的install命令或者pip命令去安裝,其次,目前很多的github程式碼中資料集都是通過編寫sh檔案來線上獲取,因此要想執行例子程式碼是需要解決以上兩個問題。

解決python包的問題

解決這個問題的方法有兩個:一個是直接移植環境,另一個是去下載想要的python包再離線安裝這些包。

移植環境

這個方法是最簡單的,是十分直接和暴力的,並且也不會出現包不匹配的問題。
當然使用這個方法也需要你在安裝Anaconda時,對於不同的專案建立相對應的Anaconda環境。

大部分人一般會在自己的個人電腦上配置一個相同的深度學習環境,因為在程式debug的時候一般的會在自己的電腦上,只有在真正訓練的時候才會部署到伺服器上。我們可以找到在Anaconda3下有一個envs資料夾,這個資料夾下面就是我們自己建立的環境,每一個資料夾就是一個環境,直接打包壓縮,通過WinSCP直接傳到伺服器,通過以下幾條命令即可實現,name均為環境的名字

cd  path  #path是壓縮包儲存的位置
unzip name.zip  #解壓相應的壓縮包
mv name ~/anaconda3/envs/   #移動環境到Anaconda的envs檔案中

conda activate name

離線安裝python包

這個方法需要自己離線下載包,去下面這個網址查自己所需要的包,需要對應python的版本和自己所需要的python包的版本。

開啟連結: https://pypi.org/.下載好之後,通過pip就可以安裝了

pip install package_name.whl

解決資料包的問題

下載好的程式碼,基本是不包含資料集和yolo網路的引數的,因為這些檔案的太大了,因此,都是通過sh檔案線上下載,但是線上下載一般都是龜速而且伺服器也不允許線上下載,因此我們需要找到下載資料集的sh檔案,在這裡插入圖片描述
將上面的網址全部複製下來,通過瀏覽器下載這些會比較快。然後再通過WinSCP傳到伺服器,並按照sh檔案裡的程式碼操作除下載以外的其他命令即可。

最終程式執行結果

python test.py

在這裡插入圖片描述

相關文章