nvidia-docker2で機械学習の環境構築
はじめに
Dockerの運用が必要になったので環境構築してみました
環境
Docker のインストール
aptのパッケージリストを更新する
sudo apt update -y
必要なソフトウェアのインストールする
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
docker公式のGPG公開鍵をインストールする
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
リポジトリを追加する
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
再度パッケージリストを最新の状態に更新する
sudo apt update -y
Docker CEをインストールする
sudo apt-get install -y docker-ce
ユーザーをグループに所属させる(sudoなしで実行できるようにする)
sudo gpasswd -a user docker
nvidia-docker2.0 のインストール
旧バージョンのnvidia-docker 1.0がある場合は削除する
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge nvidia-docker
nvidia-dockerの公開鍵を取得してインストールする
curl -sL https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
変数を設定する
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
リポジトリを追加する
curl -sL https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
再度パッケージリストを最新の状態に更新する
sudo apt update -y
nvidia-docker2.0 をインストール
sudo apt install nvidia-docker2 -y
デーモン起動を起動する
sudo pkill -SIGHUP dockerd
Dockerfile を作る
Dockerfileを作ります
FROM nvidia/cuda:10.1-devel-ubuntu18.04
ENV CUDNN_VERSION 7.6.4.38
RUN apt-get update && apt-get install -y --no-install-recommends \
libcudnn7=$CUDNN_VERSION-1+cuda10.1 \
libcudnn7-dev=$CUDNN_VERSION-1+cuda10.1 \
&& \
apt-mark hold libcudnn7 && \
rm -rf /var/lib/apt/lists/*
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y tzdata
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
llvm \
libncurses5-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libffi-dev \
liblzma-dev \
vim
WORKDIR /root/
RUN wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz \
&& tar xvf Python-3.7.0.tar.xz \
&& cd Python-3.7.0 \
&& ./configure --enable-optimizations \
&& make altinstall
RUN rm Python-3.7.0.tar.xz
WORKDIR /root/Python-3.7.0
RUN ln -fs /root/Python-3.7.0/python /usr/bin/python
RUN curl -kL https://bootstrap.pypa.io/get-pip.py | python
WORKDIR /root/
ADD requirements.txt /root/
RUN pip install -r requirements.txt && rm requirements.txt
ENV PYTHONPATH "${PYTHONPATH}:/usr/local/lib/python3.7/site-packages"
CMD ["/bin/bash"]
イメージを作る
Dockerfileをもとにイメージを作る
docker image build -t cuda-10.1-cudnn7.6 .
コンテナを作る
ホストのディレクトリをコンテナにマウントする
docker container run -it --runtime=nvidia -h hoge --mount type=bind,src=/hoge/base,dst=/root/dst cuda-10.1-cudnn7.6
結果
とりあえず学習ができているはず
Author And Source
この問題について(nvidia-docker2で機械学習の環境構築), 我々は、より多くの情報をここで見つけました https://qiita.com/ygumaanl/items/76c8784e38f67e16c3b9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .