[tensorflow 2.4.1 ubuntu 20.04 cudnn 8.0 cuda 11.0] 에서 도커 환경설정 방법이다.
docker pull ubuntu:20.
docker run -it ubuntu:20.04
# 모듈/패키지 정보 업데이트
root@d44139ec9a260:/# apt-get update
# 필수 모듈/패키지 설치
root@44139ec9a260:/# apt-get install -y net-tools wget git-core vim sudo kmod build-essential cmake pkg-config unzip
# python 3.8 conda 설치 스크립트 다운로드
root@44139ec9a260:/# cd /root
root@44139ec9a260:/# https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-x86_64.sh
# Conda 설치
root@44139ec9a260:/# bash Miniconda3-py38_4.10.3-Linux-x86_64.sh
# 하라는 대로 설치 쭉 한다
# Conda 환경 적용
root@44139ec9a260:/# . .bashrc
# 설치 버전 확인
root@44139ec9a260:/# conda --version
root@44139ec9a260:/# python --version
# tensorflow 설치
root@44139ec9a260:/# conda search tensorflow
# 이렇게 하면 설치 가능한 tensorflow 가 쭉 뜬다(버전 잘 보고 고르기)
# tensorflow 진짜 설치
root@d44139ec9a260:/# conda install -c conda-forge tensorflow=2.4.1=gpu_py38h8a7d6ce_0
# open cv 설치
root@d44139ec9a260:/# conda install -c conda-forge opencv
# 버전 확인을 위해서
root@d44139ec9a260:/# python3
#으로 들어간 후
In [1]: import cv2
In [2]: print(cv2.__version__) 4.5.1
# import 가 안되면 아래와 같이 해서 dependency에 대한 패키지 설치를 해준다
root@dd44139ec9a260:/# sudo apt-get install libgl1-mesa-glx
# 추가 작업 후 container 나가기
root@44139ec9a260:/# exit
자 여기서가 문제다
정신 똑바로 차리고 버전 확인하기
1. cuda 11.0
2. cuda 8.0
3. tensorflow 2.4.0
4. python 3.8
5. ubuntu 20.04
https://www.tensorflow.org/install/source#tested_build_configurations
링크에 들어가면 각각 호환되는 버전이 뜬다. 여기서 밑줄 친 버전을 사용할 예정이다.
1) 첫번째로
cuda toolkit 11.0
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
sudo sh cuda_11.0.3_450.51.06_linux.run
버전 확인 후 저 밑에 뜨는 명령어 두줄을 다 입력해줘야한다. 첫번째 줄이 오래걸려서 멍때리다가 두번째줄 하는거 까먹고 nvcc -V하면 당연히 아무것도 안나온다 : )
두번째 명령어를 치면 실제로 설치하는 과정이 나오는데 거기서 드라이브의 경우는 체크박스를 해제하고 나머지 전체는 다 설치해줬다
여기에서 까는데 뭐라뭐라 오류 로그 파일 읽어라 하고 에러가 뜨면 gcc가 설치되어있지 않을 확률이 높다
여기까지 했는데 nvcc -V 했을때 아무것도 안나오면
path 설정을 해줘야함
cd ~
vi ~/.bashrc
vi bashrc 파일로 들어가서 맨 마지막으로 가서
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
:wq 로 저장까지 해주고 vi 편집기에서 나와서
source ~/.bashrc
까지해주면 nvcc -V하면 잘나올거 !
2) cuDNN
https://developer.nvidia.com/rdp/cudnn-archive(링크)
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
서버단에서 작업중이라면 로컬로 다운받은애를 서버 작업하는 환경의 경로로 이동한 후에 그 경로에서 압축을 풀어줘야함(너무 당연한소리)
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
복사해주고 chmod로 권한 바꿔주고나면 끝
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
이렇게하면 설치된 버전 확인 가능
자 이렇게 다 설치했으니까 설치한 환경 그대로 이미지 저장도 해놓자
# Docker Image 생성
docker commit -m '<이미지 설명>' <Container ID> <image name>:<tag>