1.簡単なpython環境を作る
2.jupyterをVS Codeで使う
3.Githubと連携
4.Dockerfileで自前の環境構築
5.tensorflowを使う
6.pytorchを使う(今ココ)
書籍の環境構築は書籍に譲るとして、自前で何かしたいときの対応をしてみる。
(pytorch派なのでtensorflowは一旦捨て置く)
あとvscodeのnotebookが微妙に使いづらいのでここでなんとかしてみる。
公式のコンテナイメージを使う。
先述のDockerFileよりは軽量化。
Dockerfile
#公式のdockerイメージをベースにする。
FROM nvidia/cuda:11.8.0-devel-ubuntu20.04 as base
#apt-get中にタイムゾーンの設定を聞かれる・・・
ENV EBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
SHELL ["/bin/bash", "-c"]
RUN apt update && apt upgrade -y
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
bzip2 \
# ca-certificates \
# cmake \
# ffmpeg \
git \
# libboost-all-dev \
# libglib2.0-0 \
# libjpeg-dev \
# libpq-dev \
# libsdl2-dev \
# libsm6 \
# libxext6 \
# libxrender1 \
# mercurial \
# subversion \
sudo \
# swig \
wget \
# xorg-dev \
# xvfb \
vim \
zip \
zlib1g-dev \
# build-essential \
# cuda-command-line-tools-${CUDA/./-} \
# libcublas-${CUDA/./-} \
# cuda-nvrtc-${CUDA/./-} \
# libcufft-${CUDA/./-} \
# libcurand-${CUDA/./-} \
# libcusolver-${CUDA/./-} \
# libcusparse-${CUDA/./-} \
curl \
# libcudnn8=${CUDNN}+cuda${CUDA} \
# libfreetype6-dev \
# libhdf5-serial-dev \
# libzmq3-dev \
# pkg-config \
# software-properties-common \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# For CUDA profiling, TensorFlow requires CUPTI.
ARG USERNAME=dev-user
ARG GROUPNAME=dev-user
ARG UID=1000
ARG GID=1000
ARG PASSWORD=dev-user
#追加したユーザでsudoを使えるようにする
RUN groupadd -g $GID $GROUPNAME && \
useradd -m -s /bin/bash -u $UID -g $GID $USERNAME && \
adduser dev-user sudo && \
echo $USERNAME:$PASSWORD | chpasswd && \
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
#rootのパスワードがわからないのでパスワードを変更
RUN echo "root:root" | chpasswd
RUN pip install --upgrade pip
RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
一番最後のpip installは公式イメージのバージョンと合わせたものに対応したコマンドにしてます。
cudaが使えているか?の確認
dev-user@6a842f00a638:/workspaces/pytorch$ python3
Python 3.8.10 (default, Mar 13 2023, 10:26:41)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.cuda.is_available())
True
OKOK。
GPUを使うときは公式イメージを持ってくるのが一番手っ取り早そうですね。
Tensorflowは知らん。(雑)
jupyter labをブラウザで使う
requirements.txtにjupyterlabを入れるだけ。
##### Core scientific packages
matplotlib
numpy
pandas
scipy
##### Machine Learning packages
scikit-learn
xgboost
##### Image manipulation
Pillow
graphviz
opencv-python
tqdm
ipywidgets
jupyterlab
vscodeのターミナルでコマンドを実行
dev-user@6a842f00a638:/workspaces/pytorch$ python3 -m jupyter lab
~中略~
[C 2023-05-18 12:36:57.765 ServerApp]
To access the server, open this file in a browser:
file:///home/dev-user/.local/share/jupyter/runtime/jpserver-1414-open.html
Or copy and paste one of these URLs:
http://localhost:8888/lab?token=d3598fb73df65b88d9a572bfee7ec4f069a4378a3d301714
http://127.0.0.1:8888/lab?token=d3598fb73df65b88d9a572bfee7ec4f069a4378a3d301714
最後に出てくるアドレスにアクセスするとjupyter labが起動できる。
こっちでも実行できる。
ちなみに、「jupyter lab」を「jupyter notebook」にすると、notebook環境が使えます。
ipywidgetsはjupyter labだとうまく使えなかったので、notebookを使いました。