隔離された Python 3.6 仮想環境の新規作成と,TensorFlow 1.15.5,Keras のインストール(venv を使用)(Ubuntu 上)
- 前準備
- Python の仮想環境の新規作成と,TensorFlow 1.15.5,その他パッケージのインストール
- TensorFlow の動作確認
TensorFlow 1.15.5 は,TensorFlow 1 系の最終リリースであり,動作対象の Python は 3.6 までである(Python 3.7 以降の公式ビルドは配布されていない).Python 3.6 と TensorFlow 1.15 はいずれもサポートが終了しているため,新規開発では TensorFlow 2 系を使用する.このページの手順は,TensorFlow 1 系でしか動作しない既存プログラムを実行する場合に使用する.
Ubuntu のシステム Python のバージョンは 3.8 以降であるため,pyenv で Python 3.6 を別途インストールし,その Python 3.6 を用いて venv による隔離された仮想環境を作成する.システム全体の Python 環境には影響を与えない.
【サイト内の関連ページ】
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.これは,パッケージ情報を最新の状態にし,インストール済みのパッケージをセキュリティ更新やバグ修正を含めて更新するためである.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを更新 (依存関係の変化も反映)
sudo apt full-upgrade
# カーネル更新等で再起動が必要な場合のみ実行
# sudo shutdown -r now
Python3 開発用ファイル,pip, setuptools, venv のインストール,Python 開発環境,Python コンソールのインストール(Ubuntu 上)
Python 本体のインストールは行わない(Ubuntu のシステム Python を用いる).
- python3 (Ubuntu のシステム Python)
- pip3 (pip 3)
- jupyter qtconsole (Jupyter Qt Console)
- jupyter notebook (Jupyter ノートブック (Jupyter Notebook))
- jupyter lab (Jupyter Lab)
- spyder (spyder)
Python3 開発用ファイル,pip, setuptools, venv のインストール
端末で,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
Python 開発環境(Jupyter Notebook, JupyterLab, Jupyter Qt Console, spyder)
端末で,次のコマンドを実行する.システム Python の領域には apt でインストールする.Ubuntu 23.04 以降のシステム Python は外部管理環境 (externally-managed-environment) であり,sudo pip3 install による導入は拒否される,あるいは apt が管理するファイルを破壊する可能性があるため用いない.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install jupyter-notebook jupyter-qtconsole spyder
NVIDIA ドライバのインストール(Ubuntu 上)
Ubuntu での NVIDIA ドライバのインストール: 別ページ »で説明
(NVIDIA GPU を使うとき)NVIDIA CUDA ツールキット 10.0,NVIDIA cuDNN 7 のインストール
TensorFlow 1.15 の GPU 機能は,NVIDIA CUDA ツールキット 10.0 と NVIDIA cuDNN 7(7.4 以上)を前提としてビルドされている.これより新しいバージョンの CUDA ツールキットでは動作しない.対応バージョンの根拠は次のページである.
ダウンロードページ
- NVIDIA CUDA ツールキットのアーカイブ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA cuDNN(ダウンロードには NVIDIA Developer Program メンバーシップの登録が必要): https://developer.nvidia.com/cudnn
cuDNN は,ダウンロードして展開(解凍)したのち,パスを通しておくこと.
【インストール手順の詳細(別ページ)】
sudo docker run --gpus all -it --rm tensorflow/tensorflow:1.15.5-gpu-py3 python -c "import tensorflow as tf; print(tf.__version__)"
Python の仮想環境の新規作成(pyenv, venv を使用)と,TensorFlow 1.15.5,その他パッケージのインストール
最新版ではない TensorFlow を使う.そうした場合,運用を簡単にする(バージョン指定のものを意図せず更新しないなど)ために,venv を用いて,Python の仮想環境を作る.
今から作成するPython の仮想環境の名前と,Python のバージョンを決めておく.
- Python の仮想環境の名前: tf115py36
- 使用する Python のバージョン: 3.6
pyenv のインストール
pyenv は,複数バージョンの Python のインストールと切り替えを行うソフトウェアである.
- いまインストールされている pyenv の消去
次のコマンドは,pyenv 本体と,pyenv 配下にインストール済みの Python およびそのパッケージをすべて削除する.pyenv を新規に導入する場合や,作り直す場合に実行する.
rm -rf ~/.pyenv
- pyenv のダウンロードと更新
cd /tmp git clone https://github.com/pyenv/pyenv.git ~/.pyenv cd ~/.pyenv git pull src/configure make -C src
- pyenv の設定
pyenv 2 系では,eval "$(pyenv init -)" によりパスの設定と shims の初期化がまとめて行われる.
echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.profile echo 'if [ -d "${PYENV_ROOT}" ]; then' >> ~/.profile echo ' export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.profile echo ' eval "$(pyenv init -)"' >> ~/.profile echo 'fi' >> ~/.profile exec $SHELL -l
- Python のビルドに必要なライブラリのインストール
pyenv は Python をソースからビルドするため,次のライブラリが必要である.
# パッケージリストの情報を更新 sudo apt update sudo apt -y 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
Ubuntu のシステム Python とは別に Python 3.6 をインストール(pyenv を使用)
- インストールできる Python のバージョンの確認
pyenv rehash pyenv install -l
- インストールできる Python 3.6 のバージョンの確認
pyenv install -l | grep 3.6
- Python 3.6.15 のインストール
3.6.15 は Python 3.6 系の最終リリースである.
pyenv install 3.6.15
OpenSSL 3 系を採用した Ubuntu 22.04 以降では,Python 3.6 のビルドが OpenSSL 1.1 を要求して失敗することがある.その場合は,前述の NVIDIA Container Toolkit を用いる方法,または OpenSSL 1.1 を含む Ubuntu 20.04 のコンテナ上で作業する方法を用いる. - pyenv の Python 3.6 の有効化
pyenv shell 3.6.15
- pyenv shell system
- pyenv shell 3.6.15
隔離された Python 3.6 仮想環境の作成(venv を使用)
下の例では,Python の仮想環境のためのディレクトリを ~/tf115py36 に作成している.システム側のパッケージと混在させないため,--system-site-packages は指定しない.
pyenv shell 3.6.15
python -m pip install -U pip setuptools
python -m venv ~/tf115py36
venv のPython の仮想環境を有効化し,pip と setuptools を更新する.あわせて,Python 開発環境,Python コンソール(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab)をインストールする.バージョンを指定しない場合,pip は Python 3.6 に対応する最後のバージョンを選択する.
source ~/tf115py36/bin/activate
python -m pip install -U pip setuptools wheel
python -m pip install -U notebook jupyterlab jupyter jupyter-console jupytext
TensorFlow 1.15.5 のインストール
- venv のPython の仮想環境を有効化する
source ~/tf115py36/bin/activate
- TensorFlow 1.15.5, Keras, Matplotlib, opencv-python のインストール
「==1.15.5」のところでバージョンを指定している.同時に指定している各バージョンの理由は次のとおりである.
- keras==2.3.1: TensorFlow 1.15 を backend として動作する Keras の最終バージョンである(2.4.0 以降は TensorFlow 2 が必要).
- numpy==1.18.5: numpy 1.19 以降と TensorFlow 1.15 の組み合わせでは,型に関する多数の警告が発生する.
- h5py==2.10.0: h5py 3 系では,HDF5 形式で保存した重みの読み込みでエラーが発生する.
python -m pip uninstall -y protobuf tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer python -m pip install -U tensorflow==1.15.5 keras==2.3.1 numpy==1.18.5 h5py==2.10.0 matplotlib opencv-pythonTensorFlow Hub, TensorFlow Datasets を使用する場合は,TensorFlow 1.15 に対応するバージョンを指定してインストールする.
python -m pip install tensorflow-hub==0.12.0 tensorflow_datasets==3.2.1
(以下省略)venv による隔離された Python 環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」である.
TensorFlow の動作確認
- venv のPython の仮想環境を有効化する
source ~/tf115py36/bin/activate
- TensorFlow のバージョン確認
「1.15.5」と表示されれば,インストールは成功している.
python -c "import tensorflow as tf; print( tf.__version__ )"
- (GPU を使うとき)TensorFlow から GPU が認識できているかの確認
実行結果の中に「device_type: "GPU"」があれば,GPU が認識できている.
python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
GPU があるのに認識されない場合は,TensorFlow 1.15 が要求する NVIDIA CUDA ツールキット 10.0,NVIDIA cuDNN 7 がインストールされていないことが原因として考えられる.表示されるエラーメッセージには,読み込みに失敗した共有ライブラリ名(libcudart.so.10.0, libcudnn.so.7 など)が含まれるので,不足しているものを確認する.インストール手順は,別ページ »で説明する. - TensorFlow の実行確認
Ubuntu で Python プログラムを動かす.次のプログラムを実行すると, 「b'Hello, TensorFlow!'」と表示される.TensorFlow 1 系の tf.Session を用いた記述である.
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() result = sess.run(hello) print(result) sess.close()