[ターゲット検出実験シリーズ] AutoDL オンライン GPU サーバーのレンタル プロセスと Pycharm ソフトウェアを使用してモデル トレーニングのためにサーバーにリモート接続する方法 (超詳細な例として Pycharm リモート トレーニング Yolov5 プロジェクトを取り上げます)

1. 記事の主な内容

       このブログの内容は大きく分けて2つあります。1 つ目: AutoDL Web サイトから GPU サーバーをレンタルします。2 つ目: Pycharm ソフトウェアを使用してレンタルしたオンライン サーバーにリモート接続し、Yolov5 プロジェクトを例としてモデルをオンラインでトレーニングします。このプロセスでは、重要な場所と、ピットを踏んだ後の問題解決方法についての私の考えが記録されます (このブログを読むのに約 15 分かかります)。
       このブログ参照の主な内容は次のとおりです:
       Mengmeng Dandan-AutoDL は、チュートリアル
       sleepy Xiaolong-Pycharm を使用してリモート サーバー (AutoDL) に接続し、YOLOv5 をトレーニングします

2. AutoDL サーバーのレンタルに関する詳細なチュートリアル

2.1 AutoDL アカウントを登録し、学生認定を申請します (学生認定には割引があります。学生でない場合はこの点は無視してください)

       まず、AutoDLの公式Webサイト(AutoDL公式Webサイト)を開き、右上隅の登録ボタンを選択すると、新規ユーザーの公式Webサイトからサーバーのレンタルに使用できる10元のバウチャーが送信されます。登録プロセスは比較的簡単なので、ここでは詳しく説明しません。
       学生証明書: 登録とログインに成功したら、学生証明書マニュアルへのリンクをクリックし、チュートリアルに従って操作します。教育用メールボックスがない場合は、証明書ページの下部にカスタマー サービス WeChat を追加してください。連絡し、学生カードに関する関連情報を提供し、アカウントを登録します。情報は学生によって確認されます(カスタマー サービスに送信する学生証には重要な情報を忘れないでください。カスタマー サービスで必要なのは、最低限必要な学生証のみです)。
       学生認定合格後は錬金術会員となるため、一般ユーザーよりも安くGPUサーバーをレンタルでき、利用時間が長いほど費用対効果が高くなります。以下の図に示すように、学生は認証を通じて正常に Alchemy のメンバーになりました。
ここに画像の説明を挿入

2.2 コンピューティングパワー市場が GPU を選択し、初期構成環境を選択する

認証に合格したら、ホームページのナビゲーション バーにあるコンピューティング パワー マーケットをクリックして、GPU のレンタルを選択できるコンピューティング パワー マーケットに移動します。詳細については、 Mengmeng Dandan の各カテゴリの       詳細な説明を参照してください。AutoDL チュートリアル。ここでブロガーが選択したのは従量課金制(インターネットカフェと同様、1時間いくら)です。GPU は RTX 3060 と 12GB のビデオ メモリを選択しました。下の図の赤い矢印ボタンをクリックしてレンタル インターフェイスに移動します。その後、サーバーのイメージを選択します。端的に言えば、いくつかの環境を設定することです
ここに画像の説明を挿入
       。サーバー用です。ここでは基本イメージを選択します。必要なものを設定するだけです (人に魚を与えるよりも、魚の釣り方を教える方が良いです)。選択したベースイメージは下図のようになります:
ここに画像の説明を挿入
       ベースイメージは conda のベース環境にインストールされます Anaconda に詳しい友人がいるなら、この部分の意味が理解できるはずです。プロジェクトをトレーニングするための conda の新しい環境 ものが多すぎると競合や混乱が生じるため、すべてをベースに置かないでください。

2.3 コンソールパラメータの分析、および関連パラメータを使用した Xftp へのログイン (Windows と Linux 間のクロスプラットフォーム転送ソフトウェア、非常に重要)

2.3.1 コンソールパラメータの分析

       GPU サーバーをレンタルした後、Web ページの右上隅にあるコンソールをクリックすると、以下の図に示すように、レンタルしたサーバーのインスタンスが表示されます。 まず、ブロガーは、図に示すように少し説明する必要がありますここに画像の説明を挿入
       。上の図では、レンタルした 084 マシン、内部の GPU グラフィックス カードは共有用です。マシンに 8 GPU が搭載されている場合、1 つの GPU をレンタルすると、電源をオンにすると 1 つの GPU が占有されます。したがって、上の図のステータス列の下にある緑色のフォントの GPU があれば十分であることがわかり、084 マシンに少なくとも 1 つの GPU があれば十分であることがわかります。ただし、084 マシンの GPU がすべて占有されている場合は、正常に起動できません (カードなしモードでは起動できます)。他の人が先に使用するのを待つのが一般的な方法です。
       この時点で GPU が十分であれば、上図に示すように、操作欄に 2 つのボタンがあり、1 つは開始、もう 1 つは追加です。[詳細] ボタンの上にマウスを移動すると、次の図に示すように列が表示されます。
ここに画像の説明を挿入
       インスタンスのブートによって占有される GPU には 2 つのタイプがあり、1 つはカードなしモードでのブート、もう 1 つは通常のブートです。カードなしモードでの起動は、GPU が占有されていないことを意味します (通常、GPU が他のものによって占有されている場合でも、カードなしモードで起動できます)。CPU があり、コストは 0.1 元/時間です。以下の図に示されています: 通常の起動は、操作を押すことです
ここに画像の説明を挿入
       最初の列の電源オン ボタンには、コンピューティング電力市場での価格が明確に示されており、1 時間あたりいくらになるかを示しています。 GPU リソース: 以下の図に示すように、ここでブロガーがレンタルした RTX 3060 カードのコストは 0.6/時間です:
ここに画像の説明を挿入
       重要な内容: カードレス モードとカード モードの違いは何ですか? どのようなシナリオに使用されますか?
       カードレスモードとカードモードは文字通り、GPUカードの有無の違いを意味します。カードフリー モードの料金はカードフリー モードよりもはるかに低く、通常は Windows とサーバー Linux の間でファイルを転送するために使用されますが、カードフリー モードの料金はカードフリー モードよりも高く、通常はモデルのトレーニングに使用されます。 (GPUを使用しているため)。
       カードなしモードで起動するかカード モードで起動するかに関係なく、コンソールには SSH ログイン列にログイン手順とパスワードが表示されます。ここでのログイン手順とパスワードは非常に重要であり、Xftp セクションと「Xftp」セクションで詳しく説明されます。 Pycharm リモート接続セクション. 次の図に示すように、次のようなケースがあることがわかりました。
ここに画像の説明を挿入

2.3.2 Xftpのダウンロードと設定

       まず最初に、Xftp クロスプラットフォーム転送ソフトウェアを紹介します。これは、Windows と Linux の間でファイルを簡単かつシンプルに転送できるようにするものです。たとえば、サーバー上でトレーニングされたモデルを Windows プラットフォームにダウンロードしたい場合、 Xftp インターフェースを通じて簡単に移動する必要があります。Xftp公式WebサイトXftp公式Webサイト
       に入り、ダウンロードをクリックしてダウンロードし、無料認証ページを見つけて関連情報を入力し、電子メール情報を受信した後、電子メール内の無料ダウンロードリンクを開いて、図に示すようにXftpの無料バージョンをダウンロードしますインストール後        、Xftp ソフトウェアを開き、左上隅の [新規] ボタンをクリックすると、次の図に示すように、新しいリンク構成情報を作成するためのダイアログ ボックスが表示されます。ブログの前の部分では        、SSH ログイン アカウントとパスワード関連情報の簡単な説明があります。ここでは、パラメータの詳細な説明を行うために Xftp をリンクします。まず、AutoDL コンソール部分でアカウントとパスワードをコピーします (ここにあります)デモです。アカウントとパスワードは架空のものですが、形式は同じです。ブロガーは自分のアカウントとパスワードを使用できます。) 形式は次のとおりです。ログイン コマンド: ssh -p 66666 [email protected]ログイン パスワード: 123456パラメータ分析: 66666はポート番号を表し、rootはユーザー名 (通常は同じ)、region-8 を表します。 seetacloud.com はホスト ドメイン名 (それが何であっても) を表し、123456 はログイン パスワードです。
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

       
       
       
        OK、パラメーター分析の導入は終わりました。このとき、パラメーターは上記の Xftp パラメーター ボックスに対応します。名前は任意に取ることができます。ホストはパラメーター分析のホスト ドメイン名に対応し、ポート番号はパラメータ解析のポート番号、ユーザー名はパラメータ解析のユーザー名が一般的に rootパスワードがパラメータ解析のログインパスワードに相当します 上記の例によれば、完成したサンプルが表示されます次の図:
ここに画像の説明を挿入
       ここに移動し、接続ボタンをクリックして接続します。接続が成功したら、次のページに移動します。ファイルを転送したい場合は、下の図に示すように、ファイルを反対側に移動するだけです。 :
ここに画像の説明を挿入

3. Pycharm ソフトウェアを使用してサーバーにリモート接続し、モデルをトレーニングします (例として Yolov5 プロジェクトを取り上げます)。

3.1 Pycharm はサーバーパラメータを設定し、リモートでサーバーに接続します

       まず第一に、Pycharm ソフトウェアをダウンロードする必要があります。Baidu を検索して公式 Web サイトをダウンロードします。: Pycharm はプロフェッショナル開発バージョンをダウンロードする必要がありますが、コミュニティ バージョンはダウンロードできません。コミュニティ バージョンにはリモートでサーバーに接続する関連機能がないためです (追加: Pycharm のプロフェッショナル バージョンをクラックする方法は、自分で検索してください) )。Pycharm のインストールについてはインターネット上に詳細なチュートリアルが多数あり、比較的簡単なので、ここではあまり説明しません。

       ダウンロードとインストールが完了したら、Pycharm ソフトウェアを開き、以下の図に示すように、左上隅にある[ファイル] -> [設定] -> [Python インタープリター]ここに画像の説明を挿入
ここに画像の説明を挿入
を選択します。        次に、右上隅にある小さな歯車ボタンをクリックします -> [追加] >SSH インタープリター、具体的な操作は次の図に示すとおりです
ここに画像の説明を挿入
ここに画像の説明を挿入
       。 SSH インタープリター インターフェイスに移動します。おなじみのサーバー パラメーター インターフェイスは、Xftp サーバー パラメーター設定ページに非常に似ています。簡単な説明は、region -8.seetacloud です。 comはホストを表し、rootはユーザー名 (通常は同じ) を表し、port はポート番号を表します。下の [次へ] ボタンをクリックします (ここでサーバーに接続する前提は、AutoDL コンソール サーバーの電源が入っていることです。そうでない場合は接続できません。) パスワード入力ページにジャンプし、サーバーに対応するパスワードを入力します
       。 , 以下の図に示すように:
ここに画像の説明を挿入
       下の [次へ] ボタンをクリックして、サーバーをローカル プロジェクトに接続するための設定ページに移動します。ここで注意すべき点が 3 つあります。最初のポイントはインタープリターです。これはインタープリターであり、プロジェクトの構成に必要な環境です。サーバーをレンタルしたときに、miniconda3 環境を初期化することを選択したことに注意してください。そのストレージ パスは **/root/miniconda3/bin/python ** です。 、次の図に示すように構成を選択します。
ここに画像の説明を挿入
       2 番目のポイント非常に重要なのは、同期フォルダーの同期操作です。Windows プロジェクト ファイルのルート ディレクトリを選択し、サーバーに対応するプロジェクト ルート ディレクトリを選択します。次の図に示すように、[ファイル パスの選択] ボタンをクリックして、Windows とサーバーに対応するルート ディレクトリのパスをカスタマイズおよび変更します。
ここに画像の説明を挿入

       落とし穴を踏む: サーバーはデフォルトのパスを直接選択し、プロジェクト ファイルはシステム ディスクに保存されます。一般に、システム ディスクは比較的小さいため、通常はできるだけ少ないものを配置するようにします。がいっぱいで、多くのものがダウンロードまたはインストールされません。このような問題を個人的に経験しました。
       解決策: 次の図に示すように、一般的なプロジェクト ファイルと対応するデータ セットは、AutoDL の /root/autodl-tmp/ フォルダに対応するデータ ディスクに保存されます。(auto-tmp フォルダの後ろにあるプロジェクト フォルダは、次のように作成されます)たとえば、yolov5 プロジェクトの場合、サーバーのアドレスは /root/autodl-tmp/project/yolov5 のように作成できます。サーバーの対応するフォルダーが次のようなものであっても、注意が必要です。project/yolov5 内の/root/autodl-tmp / yolov5 は存在しないため、自動的に作成されます)。
ここに画像の説明を挿入
       3 番目のポイント:「自動アップロード」チェックボックスを必ずチェックしてください。このボタンは、以下の図に示すように、ローカルの pycharm で変更されたコードが、サーバー上の対応するプロジェクトの同じ場所に自動的にアップロードされることを意味します。パラメータが正常に設定されたら、
ここに画像の説明を挿入
       [ツール] -> [SSH セッションの開始] をクリックしてサーバーに接続すると、小さなウィンドウが表示されます。リモート Python で始まるサーバー アドレスを選択するだけです (もちろん、異なるプロジェクトごとに異なる接続を作成できます)。成功した接続は次のとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入
       私がここにいるため、カードなしモードがオンになっているため、GPU 表示情報はありません (通常、データ セットの転送や関連コードの変更にはカードなしモードを使用でき、コストが節約されます)トレーニング モード中にカード有効モードに切り替えます)。

3.2 デーモンプロセスでモデルをトレーニングするために pytorch と yolov5 に必要な環境を構成する

       サーバーのレンタルを選択する章で、AutoDL が提供する人気の主流環境を使用せずに、段階的にサーバー環境を構成すると述べました。現在の conda 環境がベースであるため、yolo という名前の conda 環境を再作成し、Python のバージョン (推奨 Python バージョン >=3.8) をインストールし、conda 環境を更新して有効にします。コードは次のとおりです (操作はすべてコマンド ラインで実行されます)。

$ conda create -n yolo python=3.8    
$ conda init bash && source /root/.bashrc
$ conda activate yolo

ここに画像の説明を挿入
       yolo 環境に切り替えて、pytorch をインストールしています。まず最初に、選択したサーバーの cuda バージョンを確認する必要があります。次のコマンドで確認できます。

nvcc -V

ここに画像の説明を挿入
       ブロガー自身のバージョン番号が 11.1 であることがわかります。Pytorch 公式 Web サイトを開き、「Previous version of Pytorch」(pytorch の以前のバージョン番号を意味します) を見つけて、クリックして入力します。次に、ctrl+f で 11.1 キーワードを検索すると、下図に示すように、
ここに画像の説明を挿入
       pip download コマンドを見つけて、そのコマンドを Pycharm コンソール ウィンドウに貼り付け、Enter キーを押してダウンロードします (速度が遅くなる可能性があります        )
ここに画像の説明を挿入
ダウンロードが完了したら、GPU バージョンの pytorch が成功したかどうかを確認し、まず python を介して Python コマンド ライン インターフェイスに入り、次のコマンドを使用します。

#判断是否安装了cuda
import torch
print(torch.cuda.is_available())  #返回True则说明已经安装了cuda
#判断是否安装了cuDNN
from torch.backends import  cudnn
print(cudnn.is_available())  #返回True则说明已经安装了cuDNN

       ピットポイントを踏む: ブロガーがテストすると、常に false が返されます。最初は、インストールした pytorch のバージョンが CPU バージョンであるのではないかと常に疑っていましたが、GPU バージョンであることを繰り返し確認した後、サーバーがカードなしモードをオンにしていることに気付きましたカードなしモードには GPU がないため、false が返されます。カード モードを開くだけで済みます。つまり、通常どおり開くと、true が返されます。
       2 番目のセクションでサーバーにリモート接続するときに、ローカルの yolov5 プロジェクトを /root/autodl-tmp/project/yolov5 にマップしたため、このフォルダーに入り、requirements.txt を通じて yolov5 に必要な他の環境をダウンロードしました。は次のとおりです ( yolo 環境であることを忘れないでください。間違えないでください)。

pip install -r requirements.txt

ここに画像の説明を挿入
       ここまでで、yolov5 に必要な環境を構成しました。その後、データをトレーニングし、ログ情報を収集できるようになります。
       直接開始すると、関連するトレーニング情報がコンソールに直接表示され、ウィンドウを閉じるとプログラムは自動的に停止します。プログラムをバックグラウンド (デーモン プロセス) で実行させ、ログをファイルに収集し、実行後すぐにシャットダウンできるようにしたいと考えています。
       まず第一に、ブロガーの Linux は ubuntu システムなので、次のコマンドを使用して screen パッケージ (デーモン プロセスの開始に使用) をインストールする必要があります。

apt-get install screen

       画面をダウンロードした後、次のコードを使用して、コンソール情報を収集するための画面のログ ファイル パスを構成します。

vim  /etc/screenrc

       ここに保存するパスは /root/autodl-tmp/logs/screenlog_%t.log で、次の %tは次に説明するワイルドカードです。次のコードを /etc/screenrc に追加し、保存して終了します。 :

logfile /root/autodl-tmp/logs/screenlog_%t.log

ここに画像の説明を挿入
       次に、画面デーモンを起動し、次のコマンドを使用します。

screen -L -t xxx -S yolov5

       ここでの t は、前のログのワイルドカード %t で、ログ ファイルの名前を渡すために使用できます。ここでは xxx を使用してそれを表します。次の yolov5 はデーモンの名前です。screen -lsコマンドを使用すると、以下の図に示すように、現在のデーモン プロセスを表示できます:
ここに画像の説明を挿入
       画面の括弧内のステータスが (Dead) になると、デッド状態になりますscreen -wipe (以下の図に示すように) 表示:
ここに画像の説明を挿入
       非常に重要: デーモン プロセスを開始した後、yolo 環境に切り替えると、ストレージ環境のパス (/ 内のログ パス) にあるログ ファイルを表示できます。 etc/screenrc 設定ファイル。モデルのトレーニング中、コンソールは継続的に情報を出力します。プロジェクト出力情報のコンソールを終了したい場合は、マウスでコンソールを選択し、ctrl+a+d を押して画面を終了するだけです。インターフェース。トレーニング ラウンドの数を確認したい場合、最初の方法はログ ファイルを確認することです。2 番目の方法は screen -r 657.yolov5 (上の図に示すデーモン プロセスの名前) を使用することです。

       トレーニング スキルの観点から、プロジェクトとデータセットをアップロードするときは、それらを個別にアップロードし、よりコストを節約できるカードなしモードでアップロードすることをお勧めします。プロジェクト内のデータ セット (yolov5 など) のパスは、サーバーにアップロードされたデータ セットの絶対パスと同じである必要があります。必ず注意深く確認してくださいさらに、yolov5 プロジェクトをトレーニングしているときに、トレーニング後にすぐにシャットダウンして yolov5 プロジェクトのルート ディレクトリに切り替えたい場合は、次のコマンドを使用できます。

python train.py && shutdown

       細部の理解: 実際、リモート サーバーへの接続には Pycharm を使用しており、コードとデータ セットはサーバー上に配置されますが、本質的にローカルとは何の関係もありません。フレンドリーなインターフェイスで、リモート同期を通じて操作されます。Pycharm コードを変更すると、自動的にアップロードされます。これは、リモート サーバーの設定で [自動的にアップロード] チェック ボックスをチェックしたためです。不安な場合は、次の図に示す操作を選択できます。 Pycharm のツール列:
ここに画像の説明を挿入

4. この記事の概要

       この記事では主に AutoDL サーバーのレンタル手順を紹介し、Pycharm がサーバーにリモート接続してトレーニングを実行します。詳細な手順とヒントを通じて、より多くの人が環境構成に費やす時間を短縮できます。また、質問やブログの内容が分からない場合は、コメント欄にてお問い合わせください。このブログが役に立った場合は、高評価を押してください。ありがとうございます。

おすすめ

転載: blog.csdn.net/qq_32575047/article/details/128824293