Python の隔離された環境を新規作成し,そこに,TensorFlow 1.15(旧バージョン), Keras 2.3.1, Python 用 opencv-python 4.1 をインストールする."> 隔離された Python 3.6 仮想環境の新規作成と,TensorFlow 1.15.5(旧バージョン),Keras のインストール(venv を使用)(Ubuntu 上)
トップページインストール,運用Ubuntu, WSL2隔離された Python 3.6 仮想環境の新規作成と,TensorFlow 1.15.5(旧バージョン),Keras のインストール(venv を使用)(Ubuntu 上)

隔離された Python 3.6 仮想環境の新規作成と,TensorFlow 1.15.5(旧バージョン),Keras のインストール(venv を使用)(Ubuntu 上)

Ubuntu で,次のことを行う.

  1. 前準備
  2. Python の隔離された環境の新規作成と,TensorFlow 1.15.5(旧バージョン),その他パッケージのインストール
  3. TensorFlow の動作確認
CUDA は,NVIDIA社が提供している GPU 用のプラットフォームである. NVIDIA 社のグラフィックスボードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

【サイト内の関連ページ】

先人に感謝.

前準備

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行.

Ubuntu のインストールは別ページで説明している

sudo apt -y update
sudo apt -yV upgrade
sudo /sbin/shutdown -r now

Python3 開発用ファイル,pip, setuptools, venv のインストール(Ubuntu 上)

インストールするには, 端末で,次のコマンドを実行.

sudo apt -y update
sudo apt -y install python-is-python3 python3-dev python3-pip python3-setuptools python3-venv

Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール(Ubuntu 上)

Ubuntu で,Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストールを行う.

jupyter qtconsole, nteract, JupyterLab, spyder は,次のコマンドで起動できる.

Ubuntu では,端末で,次のコマンドを実行.

sudo apt -y update
sudo apt -y install python-is-python3 python3-dev python3-pip python3-setuptools python3-venv
sudo pip3 uninstall ptyprocess sniffio terminado tornado jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
sudo apt -y install jupyter jupyter-qtconsole spyder3
sudo apt -y install python3-ptyprocess python3-sniffio python3-terminado python3-tornado 
sudo pip3 install -U jupyterlab nteract_on_jupyter

TensorFlow を使う場合は,必要となる NVIDIA CUDA ツールキット,NVIDIA cuDNN のバージョン確認

TensorFlow は,そのバージョンによって,必要となる Python,NVIDIA CUDA ツールキットNVIDIA cuDNNバージョンが違う.必ずしも,「最新の NVIDIA CUDA ツールキット,NVIDIA cuDNN で動く」ということではないので,注意が必要である. そのことは,https://www.tensorflow.org/install/gpu で確認できる.

そこで, まずは,使用したい TensorFlow のバージョンにより, 必要な Python, NVIDIA CUDA ツールキットNVIDIA cuDNN のバージョンを決める.

なお,NVIDIA CUDA ツールキットはバージョンごとにディレクトリ名が変わるので,複数バージョンの同時インストールが可能. NVIDIA cuDNN は,ディレクトリを自由に決めることができるので,複数バージョンの同時インストールが可能である.

指定されているバージョンより高いものは使わない. その根拠は次のページ. URL: https://www.tensorflow.org/install/source#common_installation_problems

Windows では,NVIDIA CUDA ツールキットはバージョンごとにディレクトリ名が変わる.そのため,複数バージョンの同時インストールが可能である.そして,NVIDIA cuDNN は,ディレクトリを自由に決めることができるので,複数バージョンの同時インストールが可能である.

(NVIDIA GPU を使うとき)NVIDIA グラフィックスドライバのインストール

GPU は,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

  1. NVIDIA グラフィックスボードの確認

    CUDA 対応の GPU であるかを確認のため, 端末で,次のコマンドを実行.

    (表示が空になるときは,NVIDIAのグラフィックスボードが無い可能性がある).

    lspci | grep -i nvidia | grep VGA
    

    [image]
  2. nouveau ドライバの無効化

    端末で,次のコマンドを実行.

    echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
    echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
    cat /etc/modprobe.d/blacklist-nouveau.conf
    sudo update-initramfs -u
    

    [image]
  3. NVIDIA グラフィックスドライバとNVIDIA CUDA ツールキットのアンインストール

    NVIDIA グラフィックスドライバのインストール,NVIDIA CUDA ツールキットがインストールされていた場合には,アンイントールする. 端末で,次のコマンドを実行.

    dpkg -l | grep cuda 
    sudo apt --purge remove nvidia-*
    sudo apt --purge remove cuda-*
    sudo apt autoremove
    
  4. カーネルヘッダーと,カーネル開発用パッケージのインストール

    端末で,次のコマンドを実行.

    sudo apt -y update
    sudo apt -y install linux-headers-$(uname -r)
    
  5. NVIDIA グラフィックスドライバのインストール操作

    Ubuntu 20.04 で実際に試したところ「sudo ubuntu-drivers autoinstall」を用いて NVIDIA グラフィックスドライバをインストールするのが最も安定しているようである.

    端末で,次のコマンドを実行.

    sudo apt -y update
    sudo apt upgrade
    sudo apt dist-upgrade
    ubuntu-drivers devices
    sudo ubuntu-drivers autoinstall
    sudo update-initramfs -u
    
  6. Ubuntu システムの再起動

    グラフィックスドライバが入れ変わったので,Ubuntu システムを再起動する.

    端末で,次のコマンドを実行.

    sudo /sbin/shutdown -r now
    

    [image]
  7. NVIDIA グラフィックスドライバの確認

    システムの再起動後,端末で,次のコマンドを実行し,ドライバ等を確認する

    先頭の「Driver Version」のところに,ドライバのバージョンが表示される.

    nvidia-smi
    

    [image]

(NVIDIA GPU を使うとき)NVIDIA CUDA ツールキット 10.0 のインストール

CUDA は,NVIDIA社が提供している GPU 用のプラットフォームである. NVIDIA 社のグラフィックスボードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

ダウンロードページ

詳細説明

(NVIDIA GPU を使うとき)NVIDIA cuDNN 7.4 のインストール

ダウンロードページ

Python の隔離された環境の新規作成(pyenv, venv を使用)と,TensorFlow 1.15.5(旧バージョン),その他パッケージのインストール

最新版ではない TensorFlow を使う.そうした場合,運用を簡単にする(バージョン指定のもの間違ってアップデートしないなど)のために,venv を用いて,Python の隔離された環境を作る

今から作成するPython の隔離された環境の名前と、Pythonのバージョンを決めておく

pyenv のインストール

pyenv は Python のインストールが簡単にできる機能などを持つソフトウエア.

  1. いまインストールされている pyenv の消去
    rm -rf ~/.pyenv
    

    [image]
  2. pyenv のダウンロードと更新
    cd /tmp
    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
    cd ~/.pyenv
    git pull
    src/configure 
    make -C src
    

    [image]
  3. pyenv の設定
    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 --path)"' >> ~/.profile
    echo 'fi' >> ~/.profile
    echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.profile
    exec $SHELL -l
    source ~/.profile
    

    [image]
  4. 関係するライブラリのインストール
    sudo apt -y 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
    

システム Python とは別に Python 3.6 をインストール (pyenv を使用)

  1. インストールするPython のバージョンの確認
    pyenv rehash 
    pyenv install -l 
    

    [image]
  2. インストールできる Python 3.6 のバージョンの確認
    pyenv install -l | grep 3.6
    

    [image]
  3. Python 3.6.12 のインストール
    pyenv install 3.6.12
    

    [image]
  4. pyenv の Python 3.6 の有効化.

    pyenv shell 3.6.12
    

Python の切り替えは次のようなコマンドで行う.

デフォルトで pyenv 配下の python 3.6.12 を使いたいときは, 次のように設定する

echo 'pyenv shell 3.6.12' >> ~/.bashrc
exec $SHELL -l

隔離された Python 3.6 仮想環境の作成(venv を使用)

下の例では,Python の隔離された環境のためのディレクトリを ~/tf115py36に作成している.

pyenv shell 3.6.12
python -m pip install -U pip setuptools
python -m venv --system-site-packages ~/tf115py36

[image]

[image]
  • venvPython の隔離された環境有効化し,pip と setuptools を更新. Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール.

    source ~/tf115py36/bin/activate
    python -m pip install -U pip setuptools jupyterlab jupyter jupyter-console jupytext nteract_on_jupyter spyder
    

    [image]

    1. venvPython の隔離された環境有効化する

      source ~/tf115py36/bin/activate
      

      [image]
    2. TensorFlow 1.15.5, Keras, MatplotLib, Python 用 opencv-python のインストール

      ※ 「==1.15.5」のところでバージョンを指定している.

      sudo apt -y update
      sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv
      python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras
      python -m pip install -U tensorflow==1.15.5 tensorflow_datasets tensorflow-hub keras==2.3.1
      python -m pip install git+https://github.com/tensorflow/docs
      python -m pip install git+https://github.com/tensorflow/examples.git
      

      [image]
      (以下省略)

      venv を使い,孤立した Python の隔離された環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」.

    TensorFlow の動作確認

    1. venvPython の隔離された環境有効化する

      source ~/tf115py36/bin/activate
      

      [image]
    2. TensorFlow のバージョン確認

      バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

      python -c "import tensorflow as tf; print( tf.__version__ )"
      

      [image]
    3. (GPU を使うとき) GPU が認識できてるかの確認

      TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.

      python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
      

      [image]

      ここで,GPU があるのに,TensorFlow から認識されていないかもしれない. TensorFlow GPU 版が指定するバージョンの NVIDIA CUDA ツールキット,NVIDIA cuDNN がインストールされていないことが原因かも知れない.

      • Ubuntu での NVIDIA グラフィックスドライバNVIDIA CUDA ツールキットのインストールの詳細は,別ページで説明している.
      • Ubuntu での NVIDIA cuDNNのインストールは,別ページで説明している.
    4. TensorFlow がインストールできたかを確認したい.

      Ubuntu で Python プログラムを動かす.

      メッセージを表示するプログラム

      結果として 「b'Hello, TensorFlow!'」のように表示されるので確認する.

      import tensorflow as tf
      hello = tf.constant('Hello, TensorFlow!')
      sess = tf.Session()
      result = sess.run(hello)
      print(result)
      sess.close()
      

      [image]