トップページインストール,運用Ubuntu, WSL2pip,setuptools,venv,Python 開発環境(JupyterLab, spyder, nteract),TensorFlow 2.6,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)

pip,setuptools,venv,Python 開発環境(JupyterLab, spyder, nteract),TensorFlow 2.6,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)

【目次】

  1. 前準備
  2. Python3 開発用ファイル,pip, setuptools, venv のインストール,Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール(Ubuntu 上)
  3. TensorFlow 2.6,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)
  4. TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる
  5. TensorFlow のプログラム例

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

先人に感謝.

このWebページに記載しているプログラムは https://github.com/tensorflow/tensorflow#download-and-setup をもとに作成

参考 Web ページ

前準備

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

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

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

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

  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 ツールキット 11.4 のインストール

Ubuntu 20.04 で NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.4 のインストールを行う. (他の Ubuntu,NVIDIA CUDA ツールキットのバージョンでもおおむね同様の手順になる.) CUDA は,NVIDIA社が提供している GPU 用のプラットフォームである.

NVIDIA グラフィックス・カードがある場合に限り, インストールを行うこと.

TensorFlow 2.7 を動かしたいので,ここでは,私が動作確認できた NVIDIA CUDA ツールキット 11.5 をインストールする

  1. Ubuntu のバージョンを確認

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

    uname -m
    lsb_release -sc
    cat /etc/*release
    

    次のようにUbuntu のバージョンが表示されるので確認する.

    VERSION_ID の行などで確認できる.

    [image]
  2. NVIDIA CUDA パッケージレポジトリで,ファイル名を確認

    NVIDIA CUDA パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/cuda/repos/

    ※ Linux の種類やバージョンごとに,ファイル名が違うので確認する.NVIDIA CUDA パッケージレポジトリでは, Ubuntu 以外の Linux についてのファイルも公開されている : https://developer.download.nvidia.com/compute/cuda/repos/

    Ubuntu 20.04 の場合は,https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ で確認.

    .pub」という名前の付いたファイルを確認.

    [image]

    cuda-ubuntu....pin」という名前の付いたファイルを確認.

    [image]
  3. NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加

    このとき,いま,確認したファイル名を指定すること

    端末で,次のように操作する.

    Ubuntu 20.04 の場合は,次の操作により,NVIDIA CUDA のパッケージレポジトリが Ubuntu システムに追加される.

    sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
    sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
    

    [image]

    Ubuntu 18.04 の場合は,https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ で確認.

    Ubuntu 18.04 の場合は cuda-repo パッケージをインストールする.

    スクロールして「cuda-repo・・・」を探す

    [image]

    そして,NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加 (いま確認したファイル名のファイルを追加).

    cd /tmp
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
    sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt -y update
    
  4. NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5インストール

    Ubuntu 20.04 の場合は,次の操作により,NVIDIA グラフィックスドライバ,NVIDIA CUDA ツールキット 11.5 がインストールされる.

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

    sudo apt -y update
    sudo apt -y install cuda-11-5
    

    [image]
  5. NVIDIA CUDA ツールキットにパスを通す設定

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

    export CUDA_PATH=/usr/local/cuda-11.5
    echo 'export CUDA_PATH=/usr/local/cuda-11.5' >> ${HOME}/.bashrc
    export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}
    echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
    export PATH=/usr/local/cuda-11.5/bin:${PATH}
    echo 'export PATH=/usr/local/cuda-11.5/bin:${PATH}' >> ${HOME}/.bashrc
    

    [image]
  6. インストールできたことの確認のため,CUDA ツールキットのバージョンを確認

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

    cat /usr/local/cuda-11.5/version.json
    

    [image]

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

NVIDIA グラフィックス・カードがある場合に限り, インストールを行うこと.

NVIDIA 機械学習パッケージレポジトリからダウンロードして,インストールするという手順を説明する.

NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

Ubuntu 20.04 の場合

  1. NVIDIA 機械学習パッケージレポジトリで,ファイル名を確認

    NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

    Ubuntu 20.04 の場合は,https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ で確認.

    スクロールして「nvidia-machine-learning-repo ・・・」を探す

    [image]
  2. NVIDIA 機械学習パッケージレポジトリを,Ubuntu システムに追加

    端末で,次のように操作する. このとき,確認したファイル名を指定すること

    cd /tmp
    wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
    sudo dpkg -i nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt -y update
    
  3. パッケージ名の確認
    apt-cache search cudnn
    

    [image]
  4. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
    sudo apt -y update
    sudo apt -y install libcudnn8 libcudnn8-dev
    
  5. インストールされたパッケージの確認
    dpkg -l | grep cuda 
    

Ubuntu 18.04 の場合

  1. NVIDIA 機械学習パッケージレポジトリで,ファイル名を確認

    NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

    Ubuntu 18.04 の場合は,https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/ で確認.

    スクロールして「nvidia-machine-learning-repo ・・・」を探す

    [image]
  2. NVIDIA 機械学習パッケージレポジトリを,Ubuntu システムに追加

    端末で,次のように操作する. このとき,確認したファイル名を指定すること

    cd /tmp
    wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    sudo dpkg -i nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
    sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
    sudo apt -y update
    
  3. パッケージ名の確認
    apt-cache search cudnn
    

    [image]
  4. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
    sudo apt -y update
    sudo apt -y install libcudnn7 libcudnn7-dev
    
  5. インストールされたパッケージの確認
    dpkg -l | grep cuda 
    

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

Python, pip, Python 開発環境,Python コンソールのコマンドでの起動のまとめ.

Ubuntu のシステム Python を用いるとき, python, pip, Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder は,次のコマンドで起動できる.

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

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

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

Python 開発環境(JupyterLab, spyder, nteract)

  1. Python3 開発用ファイル,pip, setuptools, venv, Python 開発環境,Python コンソールJupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール

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

    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
    
  2. Ubuntu システムの python3 のバージョンの確認
    python3 --version 
    

numpy, scikit-learn のインストール

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

sudo apt -y update
sudo apt -y install python3-numpy python3-sklearn

numpy の動作確認

python3
import numpy as np
print(np.sin(0))
exit()

[image]

Python の数値演算等の性能確認

import time
import numpy
import numpy.linalg
import sklearn.decomposition
import sklearn.cluster
X = numpy.random.rand(2000, 2000)
Y = numpy.random.rand(2000, 2000)
# 行列の積
a = time.time(); Z = numpy.dot(X, Y); print(time.time() - a)
# 主成分分析
pca = sklearn.decomposition.PCA(n_components = 2)
a = time.time(); pca.fit(X); X_pca = pca.transform(X); print(time.time() - a)
# SVD
a = time.time(); U, S, V = numpy.linalg.svd(X); print(time.time() - a)
# k-means
a = time.time(); 
kmeans_model = sklearn.cluster.KMeans(n_clusters=10, random_state=10).fit(X)
labels = kmeans_model.labels_
print(time.time() - a)

実行結果の例

[image]

TensorFlow 2.6,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)

設定の要点

環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

  1. 端末を開く
  2. パッケージのアンインストール操作

    トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.

    sudo apt -y remove python3-keras
    sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-text tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
    

    [image]
  3. TensorFlow の前提パッケージのインストール

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

    sudo pip3 uninstall -y six wheel astunparse tensorflow-estimator numpy keras-preprocessing absl-py wrapt gast flatbuffers grpcio opt-einsum protobuf termcolor typing-extensions google-pasta h5py tensorboard-plugin-wit markdown werkzeug requests-oauthlib rsa cachetools google-auth google-auth-oauthlib tensorboard tensorflow
    sudo apt -y install python3-six python3-wheel python3-numpy python3-grpcio python3-protobuf python3-termcolor python3-typing-extensions python3-h5py python3-markdown python3-werkzeug python3-requests-oauthlib python3-rsa python3-cachetools python3-google-auth
    
  4. TensorFlow, numpy, pillow, pydot, matplotlib, keras, opencv-python のインストール

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

    sudo apt -y update
    sudo apt -y install python3-numpy python3-pil python3-pydot python3-matplotlib
    sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv
    sudo pip3 install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner
    sudo pip3 install git+https://github.com/tensorflow/docs
    sudo pip3 install git+https://github.com/tensorflow/examples.git
    
  5. TensorFlow のバージョン確認

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

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

    [image]
  6. このあと、TensorFlow からGPU が認識できているかの確認

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

    実行結果の中に,次のように「device_type: "GPU"」があれば,GPUが認識できている.エラーメッセージが出ていないことを確認しておくこと.

    [image]
  7. 環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定
    環境変数の名前
    TF_FORCE_GPU_ALLOW_GROWTHtrue
    

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

    export TF_FORCE_GPU_ALLOW_GROWTH=true
    echo 'export TF_FORCE_GPU_ALLOW_GROWTH=true' >> ${HOME}/.bashrc
    

TensorFlow, Keras, VGG 16, InceptionV3, Imagenet による画像分類を試してみる

  1. 前準備として h5py, pillow のインストール

    sudo apt -y update
    sudo apt -y install python3-h5py python3-pillow
    
  2. 画像の準備

    10.png のようなファイル名で保存しておく

    [image]
  3. Python プログラムを動かす.
    cd <画像を置いたディレクトリ>
    python3
    
  4. VGG 16, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.vgg16 import VGG16
    from tensorflow.keras.applications.vgg16 import preprocess_input
    import numpy as np
    
    m = VGG16(weights='imagenet', include_top=False)
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    features = m.predict(x)
    print(features) 
    

    [image]

    python3 の終了は「exit()」

  5. InceptionV3, Imagenet による学習済みの重みデータによる画像分類を試してみる

    次のプログラムをコピー&ペースト

    Kerasのサイトで公開されているものを少し書き換えて使用。

    「'10.png'」のところは,実際に使用する画像ファイル名に書き換えること.

    import h5py
    from tensorflow.keras.preprocessing import image
    from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions, InceptionV3
    import numpy as np
    
    m = InceptionV3(weights='imagenet')
    
    img_path = '10.png'
    img = image.load_img(img_path, target_size=(299, 299))
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    preds = m.predict(x)
    
    print('Predicted:')
    for p in decode_predictions(preds, top=5)[0]:
        print("Score {}, Label {}".format(p[2], p[1]))
    

    [image]

    python3 の終了は「exit()」

TensorFlow のプログラム例

TensorFlow がインストールできたかを確認したい.

Python プログラムを動かす.

Python プログラムを動かすために, Windows では「python」, Ubuntu では「python3」などのコマンドを使う.

あるいは, 開発環境や Python コンソール(Jupyter Qt ConsoleSpyderPyCharmPyScripter など)の利用も便利である.

あるいは,オンラインで動くGoogle Colaboratory のノートブックの利用も,場合によっては便利である.