HOITrans は、深層学習コードを実行するためにサーバーを初めて使用したときの記録を行いました


序文

サーバー上で深層学習モデルを実行するのは初めてで、多くの落とし穴を踏みましたが、そのプロセスを記録するためにブログを書きたいとも思いました。論文を再現するまでの道のりがよりスムーズになることを願っています未来。


1. 準備

論文: HOI Transformer を使用したエンドツーエンドのヒューマン オブジェクト インタラクション検出
コード: https://github.com/bbepoch/HoiTransformer

2. 環境構築

1. サーバープラットフォームを構築する

VScodeサーバー構築


vscode を使用して学校のサーバーに接続するには、学校の VPN easyconnect を使用してログインし、ssh コマンドを入力して、デフォルトでパスワード設定ファイルを選択する必要があります。そうすると、IP アドレスが表示され (忘れずに更新してください)、その後
、ローカルで実行するのと同じになります。

ファイルジラ

新しいサイトを作成し、ローカルからサーバーにファイルを転送するための接続を確立します。
一部のデータ セットは大きいため、wget コマンドを使用したサーバーへのダウンロードが中断されるか、gdown (Google クラウド ディスクからファイルをダウンロードするコマンド) ) はサーバーでは使用できません。したがって、github 上のデータセットとコードを最初にローカルにダウンロードしてから、サーバーにアップロードすることをお勧めします。

condaを構成する

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
cd /home/jxy/env/conda
bash Miniconda3-latest-Linux-x86_64.sh 

cd .\
source ~/.bashrc
vim /etc/profile
export PATH="/public/software/apps/miniconda3/bin:$PATH"
source /etc/profile
export PATH="/public/software/apps/miniconda3/bin:$PATH"

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

2. Python環境プラットフォームの構築

ハードウェア/システム:サーバー GPU3090 CUDAバージョン:11.6
初めて環境を構築した際にバージョンの問題が発生し、
サーバー内のCUDAバージョンが11.6だったので、公式のpytorchコマンドに従って該当バージョンをダウンロードしましたが、このバージョンは新しすぎてgithubの作者のコードに適応できず、下の写真のようなエラーメッセージが多数出ます。
その結果、サーバーの CUDA バージョンに関係なく、仮想環境のコードに必要な cuda バージョンを再インストールするだけで済みます。
ここに画像の説明を挿入
ここに画像の説明を挿入
github が提供する公式の環境要件は次のとおりです。

cython
torch>=1.5.0
torchvision>=0.6.0
scipy

そのため、作者のバージョンより大きくなりすぎないこと、torch>=1.5.0の場合は1.10をインストールすることが重要であり、
torchとtorchvisionのバージョンも対応している必要があります。 torch公式サイトからご覧いただけます。

仮想環境:Python 3.6.15、torch1.10.0+cu113
で仮想環境を作成

conda create -n torch1.10 python=3.6

Pythonのバージョンのターミナル入力を確認する

python --version
# Python 3.6.15

トーチのバージョンを表示:

python
import torch
print(torch.__version__)
# 1.10.0+cu113

対応するバージョンの torch をダウンロードする

pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

ここでずっと手探りしていたのですが、このブログを見て解決したので、先にコードを実行して誰かがやったことがあるのか​​を確認してまとめてみます

3.再発プロセス

1. コードのクローンを作成する

zip アーカイブを直接ダウンロードして解凍し、FileZilla を使用してサーバーにアップロードすることをお勧めします。

2. MS-COCO を使用して事前トレーニングされた DETR モデルをダウンロードします。

&& は 2 つのコマンドを同時に実行することを意味します。最初のコマンドはディレクトリを切り替え、2 番目のコマンドは download_model.sh 内のコマンドを bash で実行します。

cd /home/jxy/program/HoiTransformer-master/data/detr_coco && bash download_model.sh

download_model.sh内のコマンドは次のとおりです。

wget https://dl.fbaipublicfiles.com/detr/detr-r50-e632da11.pth
wget https://dl.fbaipublicfiles.com/detr/detr-r101-2c7b67e5.pth

wgetがダウンロードできます。

3. HICO-DET、V-COCO、HOI-A のアノテーション ファイルをダウンロードする

cd /home/jxy/program/HoiTransformer-master/data && bash download_annotations.sh

download_annotations.shコマンドは次のとおりです。

# download hico.zip
gdown 'https://drive.google.com/uc?id=1BanIpXb8UH-VsA9yg4H9qlDSR0fJkBtW'
unzip hico.zip

# download hoia.zip
gdown 'https://drive.google.com/uc?id=1OO7fE0N71pVxgUW7aOp7gdO5dDTmkr_v'
unzip hoia.zip

# download vcoco.zip
gdown 'https://drive.google.com/uc?id=1vWVScXPsu0KVMtXW8QdLjb25NGLzEPhN'
unzip vcoco.zip

rm -rf *.zip

gdown を試してみました。このコマンドをサーバーにダウンロードする方法はありません。ローカルにダウンロードしてから、サーバー上の対応する場所にアップロードする必要があります。

このファイルはrm -rf *.zipディレクトリ内のすべての zip ファイルを削除することに注意してください。以前、誤ってデータセットを削除してしまい、データセットが見つからず、再度アップロードしました。

4. データセットをダウンロードする

cd data && bash download_images.sh

tar -xzfダウンロードされた HICO データセットは tar.gz 形式であるため、コマンドを使用して解凍する必要があります。

tar -xzf /home/jxy/program/HoiTransformer-master/data/hico_20160224_det.tar.gz

5. 関連する依存関係をインストールする

pip install -r requirements.txt
pip install pythonpy
conda install pandas
pip install opencv-python #opencv要用这条命令,不是cv2

エラーを報告すれば、どのパッケージでもインストールできますが、conda install は使いにくいようですが、ここでは pip install で直接ダウンロードできます。

6. データはサーバーのメカニカルハードディスクに移動でき、ディレクトリ配下にはアドレスが 1 つだけマッピングされます (省略可能)

mv data /home/hoi/
ln -s /home/hoi/data data

7. トレーニングモデル

python3 -m torch.distributed.launch --nproc_per_node=1 --use_env main.py --epochs=150 --lr_drop=110 --dataset_file=hico --batch_size=2 --backbone=resnet50

nproc_per_node使用される GPU の数を示します。これは精度にわずかに影響します。
サーバーの使用状況をnvidia-smi
毎秒watch -n 1 nvidia-smi

トレーニングの過程で、VScode を閉じるとコードの実行が停止する状況に遭遇することがありますが、このときは tmux を使用してプログラムをバックグラウンドで実行する必要があります。
tmux をダウンロードするには管理者アカウントとパスワードが必要ですが、それを使用するだけではありません。

tmux new -s HOItrans
tmux ls
tmux attach -t HOItrans

8. テストモデル

python3 test.py --backbone=resnet50 --batch_size=1 --dataset_file=hico --log_dir=./ --model_path=/home/jxy/program/HoiTransformer-master/checkpoint/p_202212110053/checkpoint0149.pth

試験結果

final_report.txt
mAP Full: 0.2493814180286457
mAP rare: 0.15606208638526872  mAP nonrare: 0.2772560235844596
mAP inter: 0.2702455741938609 mAP noninter: 0.11376440295474695
max recall: 0.5146250156071043

おすすめ

転載: blog.csdn.net/weixin_62501745/article/details/128449751