概要
以前の記事ではmmdetection3dがGoogle Colab環境でもある程度動きそうだというところまで試した。今回は実際に学習が行えることを確認したので、その詳細について記事にする。
前提条件
- 使用するmmdetection3dはv1.0.0rc6です。
- nuScenesデータセットの
v1.0-mini
を使用して学習する。 - 学習時間短縮のためGPUはA100を使用した。
- Colab Proを契約してランタイムのGPUクラスをプレミアムに設定
- 学習済みモデルの検証は行わない。
結果
学習自体は約2時間40分程度で完了。
詳細
- 事前準備
- Google DriveにnuScenesデータセットの
v1.0-mini
をアップロードする。
- Google DriveにnuScenesデータセットの
- コードの詳細
- 処理の流れ
- Google Driveのマウント
- データセットをColab上にコピー
- 解凍
- mmdetection3dの環境構築
- データセットをmmdetection3dに読み込ませるための準備
- 学習
- 環境構築は前回記事とほぼ同じだが、Google Colabがデフォルトでpython3.9以上のバージョンであるため、
networkx
ライブラリをver2.5に更新する処理を追加している。- エラーメッセージが出るがプログラムの実行には問題なし。
- 処理の流れ
# Commented out IPython magic to ensure Python compatibility.
from google.colab import drive
drive.mount('/content/drive')
%cp "./drive/MyDrive/Colab Notebooks/v1.0-mini.tar" ./
# Commented out IPython magic to ensure Python compatibility.
!tar -xvf v1.0-mini.tar
!pip3 install openmim
!mim install mmcv-full==1.7.0
!mim install mmdet
# Commented out IPython magic to ensure Python compatibility.
# mim経由でのインストールはかなり時間がかかる
#!mim install mmsegmentation
# 手動インストールなら早い
!git clone https://github.com/open-mmlab/mmsegmentation.git
%cd mmsegmentation
!pip install -e .
%cd ..
# Commented out IPython magic to ensure Python compatibility.
!git clone https://github.com/open-mmlab/mmdetection3d.git
%cd mmdetection3d
!pip install -e .
!pip install networkx==2.5
# Commented out IPython magic to ensure Python compatibility.
%cd /content/mmdetection3d/
# Commented out IPython magic to ensure Python compatibility.
%mkdir data/nuscenes
%cd data/nuscenes
!ln -s /content/maps/ maps && ln -s /content/samples/ samples && ln -s /content/sweeps/ sweeps && ln -s /content/v1.0-mini/ v1.0-mini
# Commented out IPython magic to ensure Python compatibility.
%cd /content/mmdetection3d/
!python tools/create_data.py nuscenes --root-path ./data/nuscenes --version v1.0-mini --out-dir ./data/nuscenes --extra-tag nuscenes
# Commented out IPython magic to ensure Python compatibility.
# 1つのGPUでトレーニングする
%mkdir work_dir
!python tools/train.py configs/centerpoint/centerpoint_01voxel_second_secfpn_circlenms_4x8_cyclic_20e_nus.py --work-dir work_dir