参考書「つくりながら学ぶ!PyTorchによる発展ディープラーニング」の環境構築例をご紹介します。

【環境構築】「つくりながら学ぶ!PyTorchによる発展ディープラーニング」

つくりながら学ぶ!PyTorchによる発展ディープラーニング」は有名で人気なPyTorchの参考書です。購入済みの方々も、購入を検討されている方々も、どんなPC環境を整えないといけないのか気になると思います。

この記事では、参考書のプログラムを動かすための環境構築方法をご紹介します。

本記事でご紹介する環境構築

この記事では3つの環境構築例をご紹介します。

初学者の方々には、無料で構築できる「手元PC(GPU不要)+Google Colaboratory」をまず試すことをオススメします。

  • 手元PC(GPU不要)+AWS
  • 手元PC(GPU不要)+Google Colaboratory
  • 手元PCのみ

以下でそれぞれの詳細をまとめていきます。

手元PC+AWS

有料ですので、AWSを使う場合は慎重に進めましょう。

書内で詳しく解説されていますので、構築方法については、本記事では省略します。

AWS公式

手元PC+Google Colaboratory

Google Colaboratoryは、無料で、ブラウザのみでディープラーニングを実装・検証できるツールです。

「ファイル > ノートブックを開く > GitHub」というような操作で簡単にインポートすることができます。

Colaboratory公式

手元PCのみ

GPUを搭載した手元のPCで機械学習を行う場合は、以下の説明が役立つと思います。

以下では、2つの仮想環境構築例をご紹介します。

  • Anaconda
  • Docker

※ソフトウェアのインストールは慎重に進めましょう。

Anaconda

Anaconda はデータサイエンス向けのPython仮想環境を構築できるプラットフォームです。

Anaconda公式

必要条件

  • Anaconda
  • Jupyter Notebook

環境構築

仮想環境をつくって名前をつけます。

$ conda create -n py36_pytorch python=3.6

つくった仮想環境にアクセスします。

$ conda activate py36_pytorch

PyTorchをインストールします。公式HPを確認して、お手元の環境に合うバージョンを指定してインストールする必要があります。
PyTorch公式

下記のコマンドは、CUDA8.0で1.0.0のPyTorchをインストールする例です。

$ conda install pytorch==1.0.0 torchvision==0.2.1 cuda80 -c pytorch

本書のプログラムはipynb形式のファイルなので、Jupyter Notebookをインストールします。

$ pip install jupyter
$ jupyter notebook

Jupyter Notebook上で、つくった仮想環境のKernelを選択できるはずです。

Docker

Dockerも仮想環境を構築するプラットフォームです。

AnacondaがPythonまわりの環境を構築できるのに対して、Dockerはシステム全体を構築します。まったく新しいPC環境をゼロからつくるイメージです。

Docker日本語ドキュメント

必要条件

  • Docker
  • Nvidia Docker 1 or 2※

※Docker19.03以降はNvidia dockerなしで、コンテナ内でCUDAを利用できるみたいです。

Nvidia Docker 1の場合

Nvidia Docker 1を用いる場合は以下のDockerfile、Build、Runを読んでみてください。

Dockerfile
########## Pull ##########
FROM nvidia/cuda:8.0-cudnn7-devel-ubuntu16.04
########## nvidia-docker1 hooks ##########
LABEL com.nvidia.volumes.needed="nvidia_driver"
ENV PATH /usr/local/nvidia/bin:${PATH}
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64:${LD_LIBRARY_PATH}
########## BASIS ##########
RUN apt-get update && apt-get install -y \
	vim \
	wget \
	unzip \
	git \
	build-essential
########## PyTorch ##########
RUN apt-get update && \
	apt-get install -y \
		python3-pip && \
	pip3 install --upgrade pip && \
	pip3 install \
		torch==1.0.0 \
		torchvision==0.2.1
########## Book "pytorch_advanced" ##########
RUN cd /home && \
	git clone https://github.com/YutaroOgawa/pytorch_advanced
########## Jupyter Notebook ##########
RUN pip3 install jupyter && \
	echo "#!/bin/bash \n \
		cd /home/pytorch_advanced && \n \ 
		jupyter notebook --port 8000 --ip=0.0.0.0 --allow-root" \
		>> /home/jupyter_notebook.sh && \
	chmod +x /home/jupyter_notebook.sh
########## Requirements ##########
RUN apt-get update && \
	apt-get install -y \
		libopencv-dev && \
	pip3 install \
		matplotlib \
		tqdm \
		opencv-python \
		pandas
######### initial position ##########
WORKDIR /home
Build
$ docker build . -t book_pytorch_advanced:nvidia_docker1
Run

Jupyter Notebookを開くために、下記のようにポートを指定する必要があります。

$ nvidia-docker run -it --rm \
	-p 8001:8000 \
	book_pytorch_advanced:nvidia_docker1

Nvidia Docker 2の場合

Nvidia Docker 2を用いる場合は以下のDockerfile、Build、Runを読んでみてください。

Dockerfile
########## Pull ##########
FROM nvidia/cuda:8.0-cudnn7-devel-ubuntu16.04
########## nvidia-docker2 hooks ##########
ENV NVIDIA_VISIBLE_DEVICES ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics
########## BASIS ##########
RUN apt-get update && apt-get install -y \
	vim \
	wget \
	unzip \
	git \
	build-essential
########## PyTorch ##########
RUN apt-get update && \
	apt-get install -y \
		python3-pip && \
	pip3 install --upgrade pip && \
	pip3 install \
		torch==1.0.0 \
		torchvision==0.2.1
########## Book "pytorch_advanced" ##########
RUN cd /home && \
	git clone https://github.com/YutaroOgawa/pytorch_advanced
########## Jupyter Notebook ##########
RUN pip3 install jupyter && \
	echo "#!/bin/bash \n \
		cd /home/pytorch_advanced && \n \ 
		jupyter notebook --port 8000 --ip=0.0.0.0 --allow-root" \
		>> /home/jupyter_notebook.sh && \
	chmod +x /home/jupyter_notebook.sh
########## Requirements ##########
RUN apt-get update && \
	apt-get install -y \
		libopencv-dev && \
	pip3 install \
		matplotlib \
		tqdm \
		opencv-python \
		pandas
######### initial position ##########
WORKDIR /home
Build
$ docker build . -t book_pytorch_advanced:nvidia_docker2
Run

Jupyter Notebookを開くために、下記のようにポートを指定する必要があります。

$ docker run -it --rm \
	--runtime=nvidia \
	-p 8001:8000 \
	book_pytorch_advanced:nvidia_docker2

テスト

$ (イメージのbuild)
$ (コンテナのrun)
$ ./jupyter_notebook.sh

URLが表示されると思います。そのURLをブラウザで開けばJupyter Notebookが起動するはずです。

さいごに

有名なPyTorchの参考書「つくりながら学ぶ!PyTorchによる発展ディープラーニング」のための環境構築方法をご紹介しました。

参考になれば幸いです。


以上です。

Ad.