[코드 구현-1] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022)
2023.03.28 일자로 1위를 하고 있는 InternImage 모델을 학습해보려 한다.
비교적 최근에 나온 모델이라 그런지 코드 구현 포스트가 부족해서 직접 작성한다.
internimage 코드 구현 목차 참고
[코드 구현-1] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022)
2023.03.28 일자로 1위를 하고 있는 InternImage 모델을 학습해보려 한다. 비교적 최근에 나온 모델이라 그런지 코드 구현 포스트가 부족해서 직접 작성한다. https://github.com/OpenGVLab/InternImage/tree/master/det
jeonga0649.tistory.com
[코드 구현-2] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022)
모든 실행 환경은 저번 글에서 소개한 컨테이너 내부에서 이루어집니다. 2023.03.28 - [AI/논문 리뷰] - [코드 구현-1] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022) [코드 구
jeonga0649.tistory.com
[코드 구현-3, Custom Datasets] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022
2023.03.28 - [AI/논문 리뷰] - [코드 구현-1] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(2022) [코드 구현-1] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions(20
jeonga0649.tistory.com
https://github.com/OpenGVLab/InternImage/tree/master/detection
GitHub - OpenGVLab/InternImage: [CVPR 2023 Highlight] InternImage: Exploring Large-Scale Vision Foundation Models with Deformabl
[CVPR 2023 Highlight] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions - GitHub - OpenGVLab/InternImage: [CVPR 2023 Highlight] InternImage: Exploring Large-S...
github.com
Docker 개발 환경 구축하기
1. 레포지토리 다운로드
git clone https://github.com/OpenGVLab/InternImage.git
cd InternImage
2. 본인의 GPU 환경 알아보기
nvidia-smi
3. Dockerfile 작성하기
FROM pytorch/pytorch:1.12.1-cuda11.3-cudnn8-devel
USER root
RUN apt-get update && apt-get install -y && apt-get install python3.7 -y
RUN apt-get -y install libgl1-mesa-glx
RUN apt-get -y install libglib2.0-0
ADD . .
WORKDIR /home/user/internimage
#runtime 은 nvcc 안되고, devel로 깔아야 가능하다..
❗주의할 점
보통 pytorch image를 받아올 때 runtime 버전이 용량이 가벼워서 자주 사용하는데, 무조건 devel로 깔아야 합니다.
runtime으로 깔게 되면 container 내부에서 nvcc 버전 확인이 안되고,
소스 환경 설정할 때 CUDA_HOME이 인식이 안돼요 (미리 겪어본 시행착오 😓)
그리고 dockerfile을 작성했으면 build 해주시면 됩니다.
docker build -t 'internimage' .
4. docker-compose.yml 작성하기
version: '3.7'
services:
nap1p2_classification:
container_name: internimage
image: internimage:latest
volumes:
- .:/home/user/internimage
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['3']
capabilities: [gpu]
environment:
- GRANT_SUDO=yes
ipc: host
tty: true
device_ids에서 gpu 번호를 지정할 수 있습니다.
도커 이미지를 빌드했고, docker-compose 파일을 작성했다면 백그라운드로 실행시켜주기
docker-compose up -d
컨테이너 내부에 접속할 때는 attach를 사용합니다.
vs code extensions에서 docker 플러그인을 설치하면 손쉽게 GUI로 접속 가능합니다.
코드 실행 환경 구축하기
1. 컨테이너에 접속합니다.
그리고 nvidia-smi와 nvcc --version이 잘 출력되는 지 확인!
만약 되지 않는다면, 다시 처음부터 시도해보세요.
또한 깃허브에 나와있는 conda 환경은 사용하지 않아도 됩니다.
torch와 torchvision도 image를 통해 세팅되었으므로 pass
2. 필요한 패키지 설치하기
pip install -U openmim
mim install mmcv-full==1.7.0
pip install timm==0.6.11 mmdet==2.28.1
pip install opencv-python termcolor yacs pyyaml scipy
깃허브에는 mmcv-full 버전을 1.5.0으로 설치하라고 나와있는데,
우리가 base로 쓴 image는 torch가 1.12.0 버전이라서 1.7.0을 쓰지 않으면 train 할 때 오류가 생긴다
https://mmcv.readthedocs.io/en/latest/get_started/installation.html
Installation — mmcv 1.7.1 documentation
Docs > Installation 以中文阅读 Shortcuts
mmcv.readthedocs.io
pip 패키지 설치가 완료되었다면,
cd detection
cd ops_dcnv3
sh ./make.sh
# unit test (should see all checking is True)
python test.py
여기까지 실행이 된다면 개발환경 구축이 완료되었습니다.
다음글은 custom dataset으로 train하는 방법에 대해 설명하겠습니다.