Windows에서 mmdetection3d 사용하기
운영체제 Windows 11이나 Windows 10에서도 다를 것 없을 것임.
cuda 11.3, vs2017 c++ build tools가 이미 설치되어 있음을 기준으로 설명
(1)
아래 스크립트 차례로 실행
왜 최신인 torch==1.10.1이 아니라 1.10.0을 설치하냐 하면... 이걸로 해서 문제 없었던 경험이 있기 때문. 근데 1.10.1도 왠만하면 문제 없을 듯함.
conda create -n open-mmlab python=3.7 -y
source activate open-mmlab
conda install pytorch==1.10.0 torchvision torchaudio cudatoolkit=11.3 -c pytorch
# cudatoolkit 11.3
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html
pip install git+https://github.com/open-mmlab/mmdetection.git
pip install git+https://github.com/open-mmlab/mmsegmentation.git
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
# 아래 명령어 실행 전에 (2) 참고할 것
pip install -v -e .
(2)
pip install -v -e .
실행 도중 -std=c++14 관련 문구가 나오며 오류가 나면
setup.py
에서 extra_args=['-w', '-std=c++14'])
에서 -std=c++14를 빼주고 실행한다.
mmdetection3d repository에서 nccl을
검색해 전부 gloo로
교체해준다. 그래야 윈도우에서 실행이 된다. 링크 참고
(3)
numpy, pycocotools 관련 버전 이슈 해결
FAQ에서는 pycocotools의 버전을 바꾸라고 하나 그렇게 했을 때 오류가 나서 그냥 numpy를 업그레이드함
pip uninstall numpy
pip install numpy==1.20.2
(4)
이후 open3d, wandb 등을 필요에 따라 추가 설치하면 된다.
wandb logger 사용법: configs/_base_/default_runtime.py
에서 log_config에 WandbLoggerHook
추가
log_config = dict(
interval=50,
hooks=[
dict(type='TextLoggerHook'),
dict(type='TensorboardLoggerHook'),
dict(type='WandbLoggerHook')
])