second.pytorch環境構成レコード

14450 ワード

簡単に述べる
  second.pytorchコードはいくつかの3 dレーザレーダ点雲の学習アルゴリズムを集積し、この方面の資料は相対的に少なく、主に3 d点雲の深さ学習アルゴリズムもこの2年で力を入れ始めた.学習資料は相対的に単一で、本文はまず自分の配置secondを記録する.pytorchのnvidia-docker環境で踏んだピットは,後期に現在の3 d-lidar点群の深さ学習アルゴリズムをそれぞれ書く.ここでも、second.を参考にすることをお勧めします.pytorchの環境構成チュートリアル.OK始めましょうpytorchの環境配置は修行の道を練りましょう.
second.pytorchコード環境構成
本稿では、nvidia-dockerミラーの下にインストールされている環境に依存します.この環境構成はgithubの下secondを直接参照することができます.pytorchのreadme.txt部分はsecond.pytorchのインストールの説明では、主にソフト・ハードウェアの不整合、コンパイルの問題に関連する問題が発生します.ここで記録し、構成が完了したnvidia-dockerミラーを保存します.本明細書を参照したくないので、直接文末に入ってnvidia-dockerミラーをダウンロードすることができます.
second.pytorch公式サイトgithubアドレス:https://github.com/traveller59/second.pytorchマイコンピュータ環境構成:GeForce RTX 2080+CUDA 10.0 + Torch 1.1.0 + Python 3.7
前提条件:NVIDIAドライバ、CUDA、docker、nvidida-dockerのインストールが事前に構成されていることを確認します.(cuda 10.1テストコンパイルspconvにいくつかの問題があり、cuda 10.0のインストールを推奨)
nvidia-dockerでの環境構成
現在インストールに成功している構成はcuda 10です.0+cudnn7.xシリーズ、親測定はcuda 10.1時だpytorch依存ライブラリspconvコンパイル時に問題が発生し、公式サイトissuesで最も多くのcmakeが発生します.device_link.oこれらの問題.cuda 10の使用を推奨する.バージョン0
Step 1:まずnvidia-docker環境でsecondコードpullを降ろす
git clone https://github.com/traveller59/second.pytorch 
cd  ./second.pytorch/second

Step 2:関連依存項目のインストール
nvidia-dockerミラーの中に入って、Anacondaをインストールすることを提案して、公式サイトに行ってlinuxをダウンロードしてミラーの中に対応します.
Anacondaのダウンロードが完了すると、dockerミラーの中で端末が直接:(車に戻るには、入力が必要ですyes)
sh  Anaconda-xxx.sh  

その他の依存パッケージをインストールするには、次の手順に従います.
conda install scikit-image scipy numba pillow matplotlib
pip install fire tensorboardX protobuf opencv-python

Step 3:spconvのコンパイル
単独でspconvを持ち出すのは、ここでコンパイルするのに少し穴があるので、避ける必要があります.
まずもちろんclone spconvのコード部分です.
git clone https://github.com/traveller59/spconv  --recursive

spconvはダウンロードに成功しない可能性があります.cloneが失敗した場合、git clone fatal:The remote end hung up unexpectedlyと報告します.この原因はネットワークの原因による可能性があります.
git構成の最低速度と最低速度時間を設定することで解決します.
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 

次にboostライブラリをインストールしてdockerのミラーシステムヘッダファイルディレクトリに入り、以下のコマンドを直接叩くことができます.
apt-get install libboost-all-dev 

いやなら、boost公式サイトで圧縮パッケージをダウンロードし、解凍してspconvのヘッダファイルにヘッダファイルをコピーすればいい.
新しいバージョンのcmake>3.13.2を再びインストールし、PATHディレクトリに追加します.
このステップでは、cmakeソースをダウンロードしてコンパイルしてインストールしました.cmakeソースサイトは以下の通りです.
wget http://www.cmake.org/files/v.3.13/cmake-3.13.2.tar.gz
tar xvf cmake-3.13.2.tar.gz
cd  cmake-3.13.2
./configure
make && make install 

cmakeが正常にインストールされたかどうかを検出します.
cmake --version

cmakeのバージョン番号が変更されていない場合は、ソフト接続を追加する必要があります.
sudo ln -sf  /your_cmake_path/bin/*  /usr/bin/

error/usr/bin/cake no such files...などのエラーが発生した場合
cmake-3.13.2パスのcmakeを/usr/binにコピーします.
cp   /your_cmake_file_parent_path/cmake-3.13.2/bin/cmake    /usr/bin

cmakeのインストールに成功したら、cmakeのファイルパスを追加することを忘れないでください.bashrcの中:
export  PATH=$PATH:/your_cmake_file_parent_path/cmake-3.13.2/bin

   .bashrc   

source .bashrc 

pytorch>1.0+がインストールされていることを確認します.インストールされていない場合は、次のコマンドを実行します.
conda install torch = 1.1.0
conda install torchvision 

ここで、sponcvをコンパイルする環境準備が完了し、sponcvディレクトリの下に直接入り、次のコマンドを実行します.
python  setup.py  bdist_wheel

終了すると、distディレクトリの下に対応するspconv-xxx-xxxが生成する.whlファイル.次のコマンドを続行します.
cd  ./dist   
pip  install  spconv-xxx-xxx.whl  

これでspconvコンパイルはこれで終わります.もちろん、cmake-3.13.2でコンパイルしたspconvファイルも使用すれば、私がコンパイルしたspconvファイルを直接ダウンロードすることができ、リンクは末尾に与えられます.
Step 4:Apexのインストール
Apexをインストールするのは比較的に簡単で、ホームページのヒントに従ったことがあります:
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

Step 5:cudaにnumbaを設定する環境
入るbashrcで編集:
export NUMBAPRO_CUDA_DRIVER=/usr/lib/x86_64-linux-gnu/libcuda.so
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice

Step 6:secondを追加する.pytorchからPYTHONPATH
入るbashrcで編集:
export  PYTHONPATH=$PYTHONPATH:/your_second.pytorch_path/ 

これでsecondについて.pytorchのnvidia-dockerの下の環境依存はこれで完璧に終わります.
second.pytorchコード走通デバッグバグ修復(継続更新)
データ準備フォーマット:
└── KITTI_DATASET_ROOT
       ├── training    <-- 7481 train data
       |   ├── image_2 <-- for visualization
       |   ├── calib
       |   ├── label_2
       |   ├── velodyne
       |   └── velodyne_reduced <-- empty directory
       └── testing     <-- 7580 test data
           ├── image_2 <-- for visualization
           ├── calib
           ├── velodyne
           └── velodyne_reduced <-- empty directory

パラメータプロファイルの変更:
train_input_reader: {
  ...
  database_sampler {
    database_info_path: "/path/to/dataset_dbinfos_train.pkl"
    ...
  }
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_train.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}
...
eval_input_reader: {
  ...
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_val.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}

...pytorch/second/の下にconfigsフォルダがあり、各トレーニングパラメータファイルの構成が入っています.car.fhd.configの場合、ファイルを開いて上の部分を見つけ、データパス構成をnvidia-dockerマッピングのデータパスに変更すればいいです.
データ生成コマンドを実行します.
python create_data.py kitti_data_prep --data_path=KITTI_DATASET_ROOT

ここでは-data_パスを–root_に変更パス、create_data.pyパラメータ変数名root_path.KITTI_DATASET_ROOTはあなたのnvidia-dockerデータのマッピングパスです.
データ生成が終了したら、トレーニングコマンドを実行します.
python ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=/path/to/model_dir

トレーニングフェーズが表示されます–model_dirエラーにより停止しました.モデルが保存するパスを入力する必要があり、新しいフォルダが必要です.
nvidia-dockerのマッピングパスが/model_であると仮定するpath/では:
あなたのモデルパスは-model_です.dir=/model_path/model_20190809
新しいフォルダmodel_が作成されます20190809;
まとめ
正直に言うと、環境の構成に時間がかかり、ソフト・ハードウェア・バージョンの対応などがあります.幸いなことにdockerの出現があって、後で環境を複製するのは比較的に便利で、このsecond.pytorchの環境はこちらで構成が終わりました.2日後には対応するnvidia-dockerをdocker-hubにアップロードし、ダウンロードして直接使用するのに便利です.
自動運転方向のレーザレーダーの深さ学習アルゴリズムに移行し,現在もシロ学習段階にある.この深さ学習3 d点群の面では、まだ新興の発展段階にあり、現在、主に点群をどのようにコーデック方式を通じてCNNを効果的に学習させるか、あるいはデータを変換操作するかなど、給油すると、点群に注目し、深さ学習のこの方向の発展を推進する人が増えている.私はもっと魚を触って、漏れを拾って勉強を続けます!
nvidia-dockerミラーダウンロードリンク
second.pytorchのnvidia-dockerミラーダウンロード:docker pull smallmunich/ubt 1804_second:v0
spconvはcmake-3.13.2のwhlファイルを通じてダウンロードします:このファイルはubt 1804_にありますsecondミラー下~/spconv/dist/奥
リファレンスリンク
https://github.com/traveller59/second.pytorch
https://github.com/traveller59/spconv
https://github.com/NVIDIA/apex