らんだむな記憶

blogというものを体験してみようか!的なー

GCPオベンキョ(8) — 仮想環境(pyenv)設定

Python インタープリタについて確認すると、

$ which python
/opt/conda/bin/python

とのこと。

$ echo $PATH
/usr/local/cuda/bin:/opt/conda/bin:/opt/conda/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

の結果として anaconda の python がデフォルトで見えているが、それはさておきただの趣味の問題で pyenv で適当に環境を作ってみる・・・。

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

で良いはず。

Home · pyenv/pyenv Wiki · GitHubを参考に

sudo apt update; sudo apt install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

しておく。

Colab で見ると Python 3.6.9 を使っているらしい。現在の Deep Learning VM の /opt/conda/bin/python は 3.7.6 らしい。特に深い理由もないが、3.7.7 を入れておく。

$ pyenv install 3.7.7
$ pyenv rehash

で仮想環境を作る。

$ mkdir ~/.venvs
$ cd ~/.venvs
$ python -m venv tfenv
$ python -m venv torchenv
$ echo "alias tfenv='source ~/.venvs/tfenv/bin/activate'" >> ~/.bashrc
$ echo "alias torchenv='source ~/.venvs/torchenv/bin/activate'" >> ~/.bashrc

それぞれの仮想環境で基本的かな?ってなライブラリを入れておく。Colab で pip freeze した内容から拾った。

$ pip install -U pip
$ pip install jupyter jupyterlab matplotlib numpy pandas Pillow scipy

そして、 tfenv 側ではpip での TensorFlow のインストールより

$ pip install tensorflow tensorboard==2.1.1 tensorflow_datasets

を実行する。今日の時点では tensorboard-2.1.1 tensorflow-2.1.0 が入る。
TensorFlow 2.2.0 がリリースされたので

$ pip install tensorflow tensorboard tensorflow_datasets

で良いはず。
torchenv 側ではStart Locally | PyTorchより

$ pip install torch torchvision tensorboard tqdm

を実行する。今日の時点では tensorboard-2.2.0 torch-1.4.0 torchvision-0.5.0 が入る。
2020/4/25 に PyTorch 1.5.0 が出たが、現在の環境では CUDA 10.1 を使っているので、公式ページを見て以下のように改める。

$ pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
$ pip install tensorboard tqdm

Using tensorflow gpu 2.1 with Cuda 10.2 · Issue #34759 · tensorflow/tensorflow · GitHubを見た感じでは、TensorFlow 2.1.0 のほうは CUDA 10.2 に対応しきれていないように見えるので、両方使いたいなら上記のようにしておくほうが無難っぽく感じる。

JupyterLab 用の extension として「jupyterlab_variableinspector」を入れておくと便利かも。 (TensorFlow がロードする shared library を想定よりも早くロードする副作用が出るかもしれない。AttributeError: 'NoneType' object has no attribute 'cast' - らんだむな記憶参照)

GitHub - PyTorchLightning/pytorch-lightning: The lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplateを導入する場合にはPyTorchLightning (2) - らんだむな記憶より

jupyter labextension install @jupyter-widgets/jupyterlab-manager

しておいたほうが良いかもしれない。

GPU が見えているかはそれぞれ

>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()

>>> import torch
>>> torch.cuda.is_available()
>>> torch.cuda.get_device_name(0)

で確認できる。