반응형
[도커 제출을 위한 mmsegmentation 셋업]
고려사항
- 제출 이미지 크기
그냥 쓰던 도커 올릴수도 있겠지만, 아무래도 코딩하다보면 잡다하게 들어가있는게 많다.
기본이미지에 필요한 것만 얹는 식으로 빌드하기로 한다. - mmsegmentation 버전 및 호환되는 mmcv 버전
mmcv 버전이 안맞으면 mmsegmentation이 동작 안한다. 새로 업뎃된 코드를 사용하려고 git pull을 했다면 기존 mmcv가 동작하지 않을 수 있다.
-> mmcv의 업데이트가 필요 - mmcv 버전에 따른 dependency
예를 들면 mmcv 1.3.1 사용할땐 torch 1.5 (정확X) 사용했는데, 이 torch 버전에서는 더이상 mmcv latest를 가져오려고 해도 업뎃이 안된다.
여기서 cuda, torch, cudnn dependency에 대한건 깃허브에 표 정리가 되어있으니 참고.
DockerFile 작성
지금 시점을 기준으로, mmsegmentation 공식에 올라와있는 DockerFile을 사용하면 torch 버전문제 때문에 최신 mmcv를 사용할 수 없었고, 이는 현 버전 mmsegmentation에 동작을 안함.
‘pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel’에 해당하는 도커 이미지가 없을 경우, 베이스 이미지를 새로 받아야하기 때문에 상당한 시간이 소요된다.
현재 버전 기준으로 mmcv 1.3.7 이상이 필요하기 때문에 torch 1.6이 아닌 1.7로 올려줬고, mmcv-full로 1.3.9 버전을 설치하도록 설정해줬다.
아래와같이 작성한다. 업뎃되면 또 바꿔야할지도.
ARG PYTORCH="1.7.0"
ARG CUDA="11.0"
ARG CUDNN="8"
FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"
RUN apt-get update && apt-get install -y git ffmpeg ninja-build libgl1-mesa-glx libglib2.0-0 libsm6 libxrender-dev libxext6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install mmsegmentation
RUN conda clean --all
RUN pip install mmcv-full==1.3.9 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html
#RUN pip install mmcv-full==latest+torch1.6.0+cu101 -f https://download.openmmlab.com/mmcv/dist/index.html
RUN git clone https://github.com/open-mmlab/mmsegmentation.git /mmsegmentation
WORKDIR /mmsegmentation
RUN pip install -r requirements.txt
RUN pip install --no-cache-dir -e .
도커 이미지 생성
testing이라는 이름
$sudo docker build -f ./dockerFile --rm -t testing .
이후 과정
pth 파일 옮기고, 내 코드 복사 후 빌드.
다시 docker commit 해줬음
대충 이렇게 이미지 만드니까 (여전히 크지만) 용량도 줄었고 형식에 맞게 동작하는걸 확인했다. 굿.
key 만드는거
반응형
'딥러닝 어쩌구 > Challenge 기록' 카테고리의 다른 글
[연구일지] ALBEF 공식 코드를 뜯어요 (VLP, text-to-image retrieval) (0) | 2022.07.26 |
---|---|
MICCAI 2021 Endovis - HeiSurf Segmentation 챌린지 정리 (0) | 2021.10.05 |
댓글