DeepChem은 SageMaker에서 사용할 수 있으므로 Docker file

5241 단어 DeepChemAWSSageMaker

DeepChem은 SageMaker에서 사용할 수 있으므로 Docker file


TL;DR



SageMaker가 트레이닝DeepChem에 사용할 수 있는 Docker file입니다.
버전 의존이기 때문에 먼저 다음 버전 전용입니다.
  • deepchem-2.3.0
  • python-3.6
  • tensorflow-1.14.0
  • Docker file을 통해 자신의 컨테이너에 있는 SageMaker에서 훈련하는 방법은 참조SageMaker 혼자 컨테이너로 훈련하는 방법..

    Dockerfile

    FROM nvidia/cuda:10.0-cudnn7-devel
    ENV PATH /opt/conda/bin:$PATH
    
    ENV PYTHON_VERSION 3.6
    ENV PATH /usr/local/cuda-10.1/bin:$PATH
    ENV LD_LIBRARY_PATH /usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
    ENV LD_LIBRARY_PATH /usr/local/cuda10.0/targets/x86_64linux:$LD_LIBRARY_PATH
    
    RUN apt-get update --fix-missing && apt-get install -y wget bzip2 ca-certificates \
        libglib2.0-0 libxext6 libsm6 libxrender1 \
        git mercurial subversion
    RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
        /bin/bash ~/miniconda.sh -b -p /opt/conda && \
        rm ~/miniconda.sh && \
        ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
        echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
        echo "conda activate base" >> ~/.bashrc
    
    # deepchemはscikit-learnが0.20.1以外だと動作しないため注意が必要です。
    RUN conda install scikit-learn==0.20.1
    RUN conda install -c deepchem -c rdkit -c conda-forge -c omnia deepchem-gpu=2.3.0 python=3.6 --yes
    RUN pip install sagemaker-containers
    # deepchemの後にtensorflow-gpuを入れ直します。そうしないとGPUが利用されません。
    RUN pip uninstall tensorflow --yes
    RUN pip install tensorflow-gpu==1.14.0
    
    # Copies the training code inside the container
    COPY code/train.py /opt/ml/code/train.py
    
    # Defines train.py as script entrypoint
    ENV SAGEMAKER_PROGRAM train.py
    

    SageMaker에서 사용하는 CUDA 버전은 고정되어 있습니다.


    실제 실행 10.0 과 이터레이션 검색 라이브러리에 지정한 모양입니다.
    따라서 10.110.2 등 필요한 라이브러리의 일부를 찾지 못하면 오류가 발생할 수 있습니다.

    scikit-learn이 최신이면deepchem이 필요한 모듈을 찾을 수 없습니다


    최신 scikit-learn을 사용하면 deepcheem이 scikit-learn에 포함된 구상joblib을 찾을 수 없습니다. 오류가 발생할 수 있습니다.
    또 버전이 너무 낮으면 jaccard_similarity_score의 이름이 바뀌어 찾을 수 없다.
    따라서 0.20.1를 지정했습니다.

    tensorflow-gpu는deepchem 설치 후 명확하게 다시 설치


    deepchem에 앞서 설치tensorflow-gpu도 설치tensorflow했습니다.
    따라서 deepchem을 설치한 후 마운트 해제tensorflow를 하고 명확하게 설치tensorflow-gpu를 한다.

    GPU 사용 여부를 확인하는 방법

    from tensorflow.python.client import device_lib
    
    print(device_lib.list_local_devices())
    print(f'Use gpu: {tf.test.is_gpu_available()}')
    

    좋은 웹페이지 즐겨찾기