Creative-Chan

Anaconda 가상환경을 통한 딥러닝 환경 설정 (TensorFlow, PyTorch) 본문

Programming/Linux

Anaconda 가상환경을 통한 딥러닝 환경 설정 (TensorFlow, PyTorch)

Creative.Chan 2022. 3. 23. 16:07

목차

    1. 서론

    머신러닝 스터디를 위해 사용할 우분투 서버 환경을 구축하면서 기존에 사용하던 Python 내의 Pip 환경 대신 Conda 가상환경을 사용하여 시스템을 구성하였다.

    시대가 많이 바뀌어서 그런지 옛날에 세팅할 때에 비해 간단해지고 쉬워진 부분이 있지만, 버전 업 되면서 달라지는 부분들이 있기 때문에 2022년 3월 기준으로 세팅을 정리하고자 한다.

    2. 가상환경을 쓰는 이유?

    필요한 라이브러리를 계속 설치하다 보면 각 라이브러리의 의존성(Dependency) 문제로 인해 다양한 오류를 만나게 되고, 우분투를 다시 설치하는 불상사를 수시로 겪게 된다.

    이러한 것을 방지하기 위해, Base 위에 가상환경(Virtual environment)을 만들고 필요한 라이브러리만 해당 가상환경에 설치하여 시스템과의 충돌, 혹은 프로젝트 간의 충돌을 방지한다.

    가상환경은 시스템 컨테이너로 사용되는 docker와 Python 가상환경인 virtualenv 또는 conda로 구분할 수 있는데, docker는 OS와 관련된 부분이 들어가게 되는 가상머신에 더 가까운 개념으로 볼 수 있는데 현재 수준에서 해당 부분까지 복잡도를 높일 필요는 없으므로 Anaconda의 가상 환경인 conda를 사용하여 가상환경을 구성하게 되었다.

    3. 설치

    3.1 Anaconda 설치

    Anaconda는 파이썬 패키지 관리를 단순화할 목적으로 만들어진 오픈소스 패키지이며, Numpy, Pandas 등의 데이터 분석 패키지를 기본적으로 포함하고 있다.

    Conda라는 패키지 관리 시스템으로 관리되며, 다양한 라이브러리가 들어있어서 파이썬 입문자들은 그냥 깔아서 쓰면 웬만한 것들은 다 된다고 볼 수 있다.

    https://anaconda.org에서 다운 받아 설치 할 수 있으며, OS와 CPU에 맞는 Installer를 다운로드 받아 설치하면 된다.

    본인의 경우 Ubuntu 18.04 64-bit에 환경을 구성하고 있기 때문에 64-Bit (x86) Installer를 다운받아 다음 명령어로 설치하였다.

    sh Anaconda3-2021.11-Linux-x86_65.sh
    
    1. 설치 도중 라이센스 설명이 나오는데 yes로 동의
    2. 설치 디렉토리는 기본(/home/{UserName}/anaconda3)으로 설정
    3. .bashrc에 환경변수 등록 여부도 yes

    하면 설치가 모두 완료된다.

    3.2 TensorFlow 설치

    TensorFlow는 구글에서 개발되어 2015년에 발표된 오픈소스 라이브러리이다.

    Anaconda를 사용하여 TensorFlow를 설치하는 것은 매우 간단하다.

    본인은 TensorFlow GPU를 사용하기 원하므로 TensorFlow 설치에 앞서 NVIDIA 드라이버와 CUDA를 설치해야한다.

    3.2.1 NVIDIA 그래픽 드라이버 설치

    서버는 2개의 NVIDIA GTX 1080 SLI로 사용하고 있으므로 NVIDIA 드라이버를 설치한다.

    ubuntu-driver devices 명령어를 사용하면 설치된 그래픽카드와 권장되는 그래픽 드라이버를 보여준다.

    ubuntu-drivers autoinstall 명령어는 권장 드라이버를 자동으로 설치해준다. (본인의 경우 nvidia-driver-510 이 설치됨)

    원하는 버전을 설치하고자 한다면 sudo apt-get install nvidia-driver-{version} 을 사용하면 설치가 된다. 이후 재부팅하게되면 정상적으로 그래픽카드 드라이버가 설치되는 것을 확인할 수 있다.

    이전에 그래픽카드 드라이버가 설치되어있고 이로 인해 설치가 잘 안된다면 아래 명령어들을 사용하여 그래픽카드 드라이버를 모두 지우고 다시 시도하면 될 것이다.

    sudo apt-get remove --purge nvidia*
    sudo apt-get remove --purge nvidia-*
    sudo apt-get remove --purge nvidia-\*

    3.2.2 CUDA 설치

    TensorFlow GPU는 NVIDIA의 CUDA를 사용하여 병렬 연산을 수행한다. CUDA 연산에 필요한 CUDA Toolkit, cuDNN SDK 등의 설치가 필요한데, Linux의 경우 apt를 사용하여 해당 소프트웨어를 설치할 수 있다.

    # Add NVIDIA package repositories
    wget <https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin>
    sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
    sudo apt-key adv --fetch-keys <https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub>
    sudo add-apt-repository "deb <https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/> /"
    sudo apt-get update
    
    wgethttp://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    
    sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    sudo apt-get update
    
    wgethttps://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
    sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
    sudo apt-get update
    
    # Install development and runtime libraries (~4GB)
    sudo apt-get install --no-install-recommends \\
        cuda-11-0 \\
        libcudnn8=8.0.4.30-1+cuda11.0  \\
        libcudnn8-dev=8.0.4.30-1+cuda11.0
    
    # Reboot. Check that GPUs are visible using the command: nvidia-smi
    
    # Install TensorRT. Requires that libcudnn8 is installed above.
    sudo apt-get install -y --no-install-recommends libnvinfer7=7.1.3-1+cuda11.0 \\
        libnvinfer-dev=7.1.3-1+cuda11.0 \\
        libnvinfer-plugin7=7.1.3-1+cuda11.0
    

    3.2.3 TensorFlow 설치

    Anaconda에서는 Conda 환경을 통해 TensorFlow를 쉽게 설치할 수 있도록 제공하고 있다. 해당 명령어로 자동으로 깔리기 때문에 엄청 편하다.

    • CPU 버전의 경우
    conda create -n {envName} tensorflow
    conda activate {envName}
    
    • GPU 버전의 경우
    conda create -n {envName} tensorflow-gpu
    conda activate {envName}
    

    (출처: https://docs.anaconda.com/anaconda/user-guide/tasks/tensorflow/)

    3.3 PyTorch

    PyTorch는 Facebook에서 개발한 Python 오픈소스 머신러닝 라이브러리이다. TensorFlow에 비해 직관적인 구조 때문에 최근 연구자들이 많이 활용하고 있다.

    PyTorch는 https://pytorch.org에서 설치 조건을 선택하게 되면 조건에 맞는 설치 명령어를 제공한다.

    본인의 경우 이미 생성된 conda 환경에 torch를 설치하고자 했으므로 아래 조건으로 설치하였다.

    conda activate {envName}
    pip3 install torch torchvision torchaudio
    

    위와 같이 설치하게 되면 생성된 conda 환경 내에서 TensorFlow와 PyTorch를 모두 이용할 수 있다.

    위와 같이 설치하게 되면 생성된 conda 환경 내에서 TensorFlow와 PyTorch를 모두 이용할 수 있다.

    Comments