金子邦彦研究室インストールUbuntu, WSL2NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8, Python 開発環境,TensorFlow のインストール(Ubuntu 上)

NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8, Python 開発環境,TensorFlow のインストール(Ubuntu 上)

目次

  1. 前準備
  2. NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール(Ubuntu 上)
  3. Python3 開発用ファイル,pip, setuptools, venv のインストール,Python 開発環境,Python コンソール(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder)のインストール(Ubuntu 上)
  4. TensorFlow 2.11,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)
  5. TensorFlow のプログラム例

サイト内の主な Ubuntu 関連ページ

先人に感謝.

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

関連する外部ページ

前準備

Ubuntu のシステム更新

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

UbuntuUbuntu のインストールは別ページ »で説明

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

NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール(Ubuntu 上)

GPU

GPU は,グラフィックス・プロセッシング・ユニット(Graphics Processing Unit)の略である.現在は,3次元のビデオゲーム,さまざまな計算,ディープラーニングの高速な並列処理などに用いられている.

NVIDIA ドライバ

NVIDIA ドライバは,NVIDIA 社製の GPU を動作させるのに必要なドライバである.次の NVIDIA の公式サイトからダウンロードできる.ダウンロードのときは,使用しているオペレーティングシステムとGPUに適したものを選ぶこと.

関連する外部ページ

NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp

【インストール手順の詳細説明】

NVIDIA CUDA ツールキット

NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている.

サイト内の関連ページ

関連する外部ページ

NVIDIA CUDA ツールキットのインストール時の注意点

NVIDIA CUDA ツールキットの動作に必要なもの

Windows でインストールするときの注意点

NVIDIA cuDNN

NVIDIA cuDNN は, NVIDIA CUDA ツールキット上で動作するディープラーニング・ライブラリである. 畳み込みニューラルネットワークや リカレントニューラルネットワークなど,さまざまなディープラーニングで利用されている.

Windows で,NVIDIA cuDNN の利用時に 「Could not locate zlibwapi.dll. Please make sure it is in your library path!」と表示されるときは, ZLIB DLL をインストールすること.

関連する外部ページ

NVIDIA cuDNN のインストール時の注意点

NVIDIA cuDNN の動作に必要なもの

NVIDIA ドライバ,NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールの要点と注意点

NVIDIA ドライバのインストール(Ubuntu 上)

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

  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 
    cd /tmp
    sudo apt --purge remove -y nvidia-*
    sudo apt --purge remove -y cuda-*
    sudo apt autoremove -y
    
  4. カーネルヘッダーと,カーネル開発用パッケージのインストール

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

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

    「sudo ubuntu-drivers autoinstall」を用いて NVIDIA ドライバをインストールする.

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

    sudo apt -y update
    sudo apt -y 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 CUDA ツールキット11.8 のインストール

Ubuntu で NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 のインストールを行う.

NVIDIA CUDA ツールキット は,NVIDIA社が提供する GPU 用のツールキットである.GPU を用いた演算のプログラム作成や動作のための各種機能を備えている.ディープラーニングでも利用されている. NVIDIA 社のグラフィックス・カードが持つ GPU の機能を使うとき,NVIDIA CUDA ツールキット を利用することができる.

【関連する外部ページ】

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

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

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

    [image]

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

    Ubuntu のバージョンは,VERSION_ID の行などで確認できる.

  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/

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

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

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

  4. インストールできる CUDA のバージョンの確認
    apt-cache search cuda-11
    

    [image]
  5. NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA CUDA ツールキット 11.8インストール

    次の操作により,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 がインストールされる.

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

    sudo apt -y update
    sudo apt -y install cuda-11-8
    sudo update-initramfs -u
    sudo /sbin/shutdown -r now
    
  6. NVIDIA CUDA ツールキットにパスを通す設定

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

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

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

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

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

NVIDIA cuDNN のインストール

Ubuntu 22.04, Ubuntu 20.04 の場合

  1. パッケージ名の確認
    apt-cache search cudnn
    
  2. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
    sudo apt -y update
    sudo apt -y install libcudnn8 libcudnn8-dev
    
  3. インストールされたパッケージの確認
    dpkg -l | grep cudnn 
    

Ubuntu 18.04 の場合

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

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

  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 libcudnn8 libcudnn8-dev
    
  5. インストールされたパッケージの確認
    dpkg -l | grep cuda 
    

nvcc の動作確認

nvccの動作確認のため, https://devblogs.nvidia.com/easy-introduction-cuda-c-and-c/に記載のソースコードを使用.

  1. まず,エディタを開く(ここではエディタとして,「nano」を使っている).
    nano hello.cu
    

    [image]
  2. その後,ファイルを編集し,ファイルを保存.

    ファイル hello.cu ができる.

    [image]
  3. ビルドと実行.

    「nvcc hello.cu」で a.out というファイルができる. 「Max error: 0.000000」と表示されればOK.

    del a.exe
    nvcc hello.cu
    

    [image]
    ./a.out
    

    [image]

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

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

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 python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential

6.2 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 python-dev-is-python3 python3-pip python3-setuptools python3-venv build-essential
    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 jupyter jupyter-console jupytext nteract_on_jupyter
    
  2. Ubuntu システムの python3 のバージョンの確認
    python3 --version 
    

    [image]
  3. Jupyter Qt Console の起動チェック

    まず,numpy, matplotlib のインストールのため, 端末で,次のコマンドを実行する.

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

    端末で,次のコマンドを実行する. Jupyter Qt Console が開けば OK.

    jupyter qtconsole
    

    [image]
  4. 確認のため,Jupyter Qt Console で,次の Python プログラムを実行してみる.
    import numpy as np
    %matplotlib inline
    import matplotlib.pyplot as plt
    import warnings
    warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
    
    x = np.linspace(0, 6, 100)
    plt.style.use('default')
    plt.plot(x, np.sin(x))
    

    [image]
  5. nteract の起動チェック

    端末で,次のコマンドを実行する. ntetact が開けば OK.

    jupyter nteract
    

    [image]

  6. 確認のため,nteract で,次の Python プログラムを実行してみる.

    そのために「Start a new notebook」の下の「Python」をクリック,次のプログラムを入れ実行.

    import numpy as np
    %matplotlib inline
    import matplotlib.pyplot as plt
    import warnings
    warnings.filterwarnings('ignore')   # Suppress Matplotlib warnings
    
    x = np.linspace(0, 6, 100)
    plt.style.use('default')
    plt.plot(x, np.sin(x))
    

    [image]
  7. Juypter Notebook で,保存のときに,.py ファイルと .ipyrb ファイルが保存されるように設定.(この設定を行わないときは .ipyrb ファイルのみが保存される)
    1. 次のコマンドで,設定ファイルを生成

      jupyter notebook --generate-config
      
    2. jupyter notebook を起動し,Edit, Edit Notbook Manager を選ぶ.次のように設定する.

      "jupytext": {"formats": "ipynb,py"}

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

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

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

numpy の動作確認のためPython プログラムの実行

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

Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

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

[image]

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

Python プログラムの実行

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

Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. 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.11,Keras,MatplotLib, Python 用 opencv-python のインストール(Ubuntu 上)

設定の要点

環境変数 TF_FORCE_GPU_ALLOW_GROWTH の設定: true

TensorFlow 2.11,Keras,MatplotLib, Python 用 opencv-python のインストール

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

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

    sudo apt -y remove python3-keras
    sudo pip3 uninstall -y 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
    

    [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 libopencv-contrib-dev opencv-data
    sudo pip3 install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer 
    sudo pip3 install git+https://github.com/tensorflow/docs
    sudo pip3 install git+https://github.com/tensorflow/examples.git
    sudo pip3 install git+https://www.github.com/keras-team/keras-contrib.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'」のところは,実際に使用する画像ファイル名に書き換えること.

    Python プログラムの実行

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

    Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

    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'」のところは,実際に使用する画像ファイル名に書き換えること.

    Python プログラムの実行

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

    Python プログラムを動かすために, python3コマンドを使う. Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である. Python 開発環境の説明: 別ページ »にまとめ

    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 プログラムの実行: 別ページ »で説明

Python のまとめ: 別ページ »にまとめ