參考:vscode連接遠(yuǎn)程服務(wù)器(傻瓜式教學(xué))
配置服務(wù)器pytorch/TensorFlow環(huán)境+遠(yuǎn)程連接vscode
在遠(yuǎn)程服務(wù)器安裝anoconda并創(chuàng)建tensorflow-gpu環(huán)境并運(yùn)行jupyter
【vscode連接遠(yuǎn)程服務(wù)器】
step 1:測試服務(wù)器連接
win+R 進(jìn)入 cmd,在命令行輸入以下命令,并根據(jù)提示輸入密碼
ssh username@severIP # 用戶名@服務(wù)器IP地址
step 2:安裝 ssh 插件
打開 vscode,在左側(cè)菜單欄的 Extensions 中搜索 remote - SSH 插件,點(diǎn)擊 Install 安裝

安裝完成后,在左側(cè)的菜單欄里會新增加一個(gè) Remote Explorer

step 3:添加服務(wù)器連接
點(diǎn)擊“+”添加新的服務(wù)器連接,在提示框輸入 ssh username@severIP, 回車,將其保存至配置文件 C:\Users\xxx\.ssh\config 中(若已有多個(gè)服務(wù)器,再次添加新的后,記得在 REMOTE 右邊刷新一下)

step 4:連接服務(wù)器
右鍵想要連接的遠(yuǎn)程服務(wù)器,點(diǎn)擊“Connect in Current Window...”,并根據(jù)提示輸入密碼

左下角顯示連接成功

step 4:查看服務(wù)器文件
在左側(cè)菜單欄的 Explorer 中點(diǎn)擊 username [SSH: ip] 查看遠(yuǎn)程服務(wù)器目錄下的文件

【Tensorflow2環(huán)境配置】
step 5:Anaconda 環(huán)境
連接成功后,在終端 TERMINAL 的右上角點(diǎn)擊‘+’打開一個(gè)新的終端

我拿到的服務(wù)器已經(jīng)安裝過了 minianaconda(教程可參考置頂?shù)逆溄樱?/p>

配置 conda 鏡像源(參考:conda安裝Tensorflow和pytorch經(jīng)驗(yàn))
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
conda config --show channels
刪除鏡像等命令(參考:conda如何添加,刪除鏡像channel,管理虛擬環(huán)境,以及其他常見命令。)
conda config --remove channels https://pypi.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
step 6:安裝 Tensorflow2
(1)創(chuàng)建虛擬環(huán)境
conda create -n tensorflow python=3.8
(2)激活虛擬環(huán)境
conda activate tensorflow
(3)搜索可用鏡像
conda search tensorflow-gpu
(4)直接用 conda 安裝 Tensorflow2.6.0(conda 會自動安裝 cudnn、cudatoolkit)
conda install tensorflow-gpu==2.6.0
(5)測試 GPU 是否可用
python
import tensorflow as tf
tf.test.is_gpu_available()
【Tensorflow 環(huán)境配置問題匯總】
【問題 1】我剛開始是用 pip 安裝的 Tensorflow2.10.0 版本,經(jīng)歷了各種報(bào)錯(cuò)。。。
pip install tensorflow-gpu==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
conda install cudatoolkit==11.3.1
conda install cudnn=8.2.1
import tensorflow as tf 報(bào)錯(cuò)信息
2023-03-06 01:42:48.783815: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-03-06 01:42:48.936614: I tensorflow/core/util/util.cc:169] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2023-03-06 01:42:48.942636: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2023-03-06 01:42:48.942659: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2023-03-06 01:42:48.969748: E tensorflow/stream_executor/cuda/cuda_blas.cc:2981] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2023-03-06 01:42:49.598911: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory
2023-03-06 01:42:49.598980: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory
2023-03-06 01:42:49.598988: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.

【解決辦法】可參考這幾篇文章:
小白筆記[1]| 運(yùn)行tf問題整理(持續(xù)完善)
完美解決TensorFlow-gpu報(bào)錯(cuò)問題Could not load dynamic library ‘libnvinfer.so.6’ and ‘libcudart.so.11.0’
不要用 pip 安裝(手動安裝 cudatoolkit 和 cudnn),而是要用 conda 安裝(自動安裝 cudnn、cudatoolkit)
【問題 2】我換成 conda 來安裝后,直接在 tensorflow 導(dǎo)入部分就報(bào)錯(cuò)。。。
ImportError: libflatbuffers.so.2: cannot open shared object file: No such file or directory

百度還沒找到解決辦法,大無語,遂放棄
我不得不放棄了 Tensorflow2.10.0,安裝了 Tensorflow2.6.0,結(jié)果一次就成功了。。。

所有我前面配了兩天的環(huán)境,就是全白瞎了唄。。。
【在遠(yuǎn)程服務(wù)器上運(yùn)行項(xiàng)目】
step 1:將本地項(xiàng)目上傳至遠(yuǎn)程服務(wù)器
(我這里使用的是 FileZilla,也可以使用 WinSCP、Xshell 等)
打開 FileZilla,在上方輸入 主機(jī)、用戶名、密碼、端口(22) 后,點(diǎn)擊右側(cè)的“快速連接”
右側(cè)的“遠(yuǎn)程站點(diǎn)”會列出遠(yuǎn)程服務(wù)器的文件夾,在左側(cè)的“本地站點(diǎn)”中打開要傳輸?shù)奈募A
將左側(cè)本地文件夾下要上傳的文件,拖拽至右側(cè)遠(yuǎn)程服務(wù)器的文件夾下(右鍵可管理文件/文件夾)
最下方會顯示文件傳輸隊(duì)列,等待傳輸完成即可

step 2:查看服務(wù)器文件
在左側(cè)菜單欄的 Explorer 中點(diǎn)擊 username [SSH: ip] 查看當(dāng)前遠(yuǎn)程服務(wù)器目錄下的文件

step 3:配置 python 解釋器
使用 Ctrl+Shift+P 打開命令面板,

輸入 >Python: select Interpret,選擇配置好的 Tensorflow2 環(huán)境作為遠(yuǎn)程 python 解釋器

step 4:運(yùn)行/調(diào)試遠(yuǎn)程項(xiàng)目
(1)在左側(cè)菜單欄中點(diǎn)擊 Run and Debug,繼續(xù)點(diǎn)擊藍(lán)色框中的 Run and Debug 即可對當(dāng)前文件進(jìn)行運(yùn)行/調(diào)試
(項(xiàng)目代碼中,在行號前單擊即可設(shè)置斷點(diǎn))
(2)當(dāng)前文件右上角點(diǎn)擊 Run/Debug Python File,選擇運(yùn)行/調(diào)試當(dāng)前文件

本地和遠(yuǎn)端同步可參考:VScode實(shí)現(xiàn)本地與遠(yuǎn)端同步開發(fā)的兩種方式
【注:遠(yuǎn)程項(xiàng)目更改文件路徑】
從本地上傳到遠(yuǎn)程服務(wù)器后,文件夾的層次結(jié)構(gòu)發(fā)生了改變,因此可能需要改變文件路徑
python os 文件路徑參考:
Python--OS 方法-獲取文件對應(yīng)路徑
python獲取當(dāng)前文件的目錄與路徑
【清理遠(yuǎn)程服務(wù)器緩存】
參考:記錄:在Linux系統(tǒng)下清理GPU緩存
(1)使用 nvidia-smi 查看 gpu 使用情況

或者使用以下命令查看 GPU 上的進(jìn)程占用
fuser -v /dev/nvidia*
(2)輸入以下命令清理進(jìn)程(PID 見上圖,或見上行命令輸出)
kill -9 PID
【在遠(yuǎn)程服務(wù)器后臺運(yùn)行 python 程序】
參考:python程序后臺運(yùn)行命令
Linux如何在后臺一直運(yùn)行python程序
當(dāng)前終端掛掉后,遠(yuǎn)程服務(wù)器上的進(jìn)程可能也會掛掉。。。
(1)輸入以下命令在后臺運(yùn)行 python 程序(test.log 指定輸出日志文件)
nohup python main.py > test.log &
注意:main.py 處一定要寫全從根目錄下的路徑(main.py 直接在 /home/usr 根目錄下)
(2)輸入以下命令可以查看所有進(jìn)程的狀態(tài)
ps aux |grep python
每行每個(gè)參數(shù)的含義可參考:linux命令ps aux|grep 查看進(jìn)程詳解
Linux_ps aux指令與grep指令配合管理進(jìn)程 (其中第二列為 PID)

(3)結(jié)束進(jìn)程
kill -9 PID // 強(qiáng)制殺死進(jìn)程
【conda 打包環(huán)境】
參考:Python | Conda pack 進(jìn)行環(huán)境打包
conda創(chuàng)建的環(huán)境,打包下載,然后在其他設(shè)備離線安裝環(huán)境,python部署時(shí)需要依賴,通過conda一步解決依賴遷移問題
(1)安裝 conda-pack 文章來源:http://www.zghlxwxcb.cn/news/detail-719632.html
conda install -c conda-forge conda-pack
(2)將虛擬環(huán)境 env_name 打包為 env_name.tar.gz,打包好的環(huán)境就在本文件夾下( /home/usr )文章來源地址http://www.zghlxwxcb.cn/news/detail-719632.html
conda pack -n env_name
到了這里,關(guān)于vscode連接遠(yuǎn)程服務(wù)器 + Tensorflow2環(huán)境配置 + 深度學(xué)習(xí)訓(xùn)練的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!