DeepChem은 SageMaker에서 사용할 수 있으므로 Docker file
DeepChem은 SageMaker에서 사용할 수 있으므로 Docker file
TL;DR
SageMaker가 트레이닝DeepChem에 사용할 수 있는 Docker file입니다.
버전 의존이기 때문에 먼저 다음 버전 전용입니다.
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.1
나 10.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()}')
Reference
이 문제에 관하여(DeepChem은 SageMaker에서 사용할 수 있으므로 Docker file), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hideki/items/8560653bc5e1bd688495텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)