본문 바로가기
딥러닝 어쩌구/연구일지&디버깅

[삽질] 내친김에 mmsegmentation도 다시 설치한다

by 포숑은 맛있어 2022. 4. 11.
반응형

목적: mmsegmentation 환경 재설치

 

방청소를 안해서...

6개월 이상 분량의 코드가 덕지덕지 붙어있다...

청소 하는 김에 도커 용량도 줄일 겸 다시 셋업을 하고 있다.

 

 

1. 본인이 사용하는 레포의 mmcv 버전 지원 범위 확인하기

최근걸로 git pull하면 더 바뀌겠다만, 난 그냥 지금 쓰던 코드를 쓸거라 1.3.7~1.4.0으로 맞추면 된다.

어떤 코드냐에 따라 mmcv 버전이 다르기 때문에 이거 제일 먼저 확인해야함

 

 

 

2. 도커 파일 작성

현재 mmsegmentation/docker에 올라와있는 도커파일을 참고해본다.

 

방금 주절거렸던 mmaction2 셋업 포스팅에서 말했듯이 torch, cuda, cudnn 호환을 고려해야한다.

 

1. 특히나 mmcv 버전별로 지원하는 torch가 다르다.

https://github.com/open-mmlab/mmcv 여기서 확인할 것

 

2. 그리고 각자 사용하는 gpu마다 지원하는 cuda, cudnn 등이 다르다.

나는 A100을 쓰고 있어서 안되는 셋팅이 있었다.

 

3. 배포를 고려한다면 이미지 사이즈가 너무 커지는 것을 막아야할수도 있다.

그래서 나는 torch 버전을 낮게 잡았다.

근데 1.9.0으로 올리니까 이미지 파일은 4GB 증가했는데 학습할때는 gpu당 2GB씩 메모리 사용량이 줄어들어서 장단점이 있을 것 같다.

어떤 버전에서 어떤 장점이 있는지까지 찾아볼 시간은 없으니 언젠가 이게 절실하다면 찾아보는걸로

ARG PYTORCH="1.7.1"
ARG CUDA="11.0"
ARG CUDNN="8"
ARG MMCV="1.3.7"

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 ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

RUN conda clean --all

# Install MMCV
ARG PYTORCH
ARG CUDA
ARG MMCV
RUN ["/bin/bash", "-c", "pip install --no-cache-dir mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu${CUDA//./}/torch1.7.0/index.html"]

# Install MMSegmentation
RUN git clone https://github.com/open-mmlab/mmsegmentation.git /mmsegmentation
WORKDIR /mmsegmentation
ENV FORCE_CUDA="1"
RUN pip install -r requirements.txt
RUN pip install --no-cache-dir -e .

 

13.3GB가 나왔다.

pretrained 모델 몇개 넣고 그러면 더 커지긴 할듯

 

3. 아. 뭐 빼먹음

 

pip install opencv-python-headless

pip install -e .

 

여기까지 하고 학습 돌리니 잘 돌아간다.

 

 

 

깔-끔.

반응형

댓글