LoginSignup
0
1

More than 1 year has passed since last update.

Tensorflow2.4 Install to Ubuntu20.04 備忘録

Last updated at Posted at 2021-05-04

概要

TF2.4を入れていたUbuntu18.05のAnacondaの具合が悪い。
fit()中のエラーが解消できなくなり、OSをUbunto20.04にして再セットアップした。

  • 実施時期: 2021年5月
  • OS: Ubuntu20.04LTS (Linux ryzen 5.8.0-50-generic #56~20.04.1-Ubuntu)
  • CPU: Ryzen 5600X
  • GPU: GeForce RTX3070
  • Python: 標準のPython3

経緯

Anacondaの問題だったので今回はAnacondaは使わない。
前回UpしたとおりcondaでTF2.4.1が入るようになったけど、同時に入るCUDAが依然として10.1のままだったり、怪しい部分があるから。

RTX 30X0 + TF2.4.1 on Ubuntu20.04について、Stack Overflowにスレを立てたけど大した情報が集まらなかった。
https://stackoverflow.com/questions/67364950/cuda-and-cudnn-version-conflict-against-tensorflow2-4-1

前準備

CUDA対応NVIDIAボードが刺さっていることを確認する。

$ lspci | grep -i nvidia
07:00.0 VGA compatible controller: NVIDIA Corporation Device 2484 (rev a1)
07:00.1 Audio device: NVIDIA Corporation Device 228b (rev a1)

Nvidia Driverのインストール

CUDAをインストールするとき自動的にドライバは一緒に入るが、バーションがr450になるかもしれず、RTX 3070はr457以降が対応しているので、あえて明示的に最新版のr460を入れる。

$ sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:03.1/0000:07:00.0 ==
modalias : pci:v000010DEd00002484sv00001462sd00003909bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-460 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

$ sudo apt install --no-install-recommends nvidia-driver-460

cuda, cuDNNのサポート表を確認

TFオフィシャルの手順はUbuntu16, 18のみでUbuntu 20向けには書かれていない。
Ubuntu, NVIDIA driver, cuda, cuDNNの各バージョンは厳密に合わせておく必要があるので下表で確認する。

TF2.4.1の要求から本PCの構成で選択したのは下記の組み合わせ

Driver: r460
cuda: CUDA Toolkit 11.0 Update 1 Downloads
cuDNN: cudnn-11.0-linux-x64-v8.0.4.30.tgz

cudaのインストール

下記のrunfile[local]を行う。deb[local]でうまく行かなかったため。

image.png

$ wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
$ sudo sh cuda_11.0.3_450.51.06_linux.run          # ①
$ sudo sh ./cuda_11.0.3_450.51.06_linux.run --toolkit --silent –override      # ②

①を実行したときに、警告‘Existing package manager installation of the driver found.’ が表示され、継続せずに手動で削除して再度実行するように言われた。どのDriverのことなのか書かれていなかったが多分先に入れたr460のことだと思う。
r460はそのままにしたいので、①は再実行せず下記をおこなった。

$ sudo sh ./cuda_11.0.3_450.51.06_linux.run --toolkit --silent –override      # ②

実行後、/usr/local/cuda-11.0/bin フォルダができていることを確認してbashrcに以下を追加する。

export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRAR

cuDNNのインストール

予め下記の cudnn-11.0-linux-x64-v8.0.4.30.tgz ファイルをダウントードしておく。

Download cuDNN v8.0.4 (September 28th, 2020), for CUDA 11.0
 cuDNN Library for Linux [x86_64]

image.png

cd Downloads
tar -xzvf cudnn-11.0-linux-x64-v8.0.4.30.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
sudo apt update

Tensorflow2.4.1のインストール

まず、仮想環境などを作成するためTFオフィシャルのとおりに実行する。
なお、Documents/ML/tf-test1に仮想環境test1を作成しそこにTFを入れる。

sudo apt install python3-dev python3-pip python3-venv
cd Documents/ML/tf-test1
python3 -m venv test1
source test1/bin/activate
pip install --upgrade pip
pip list
pip install --upgrade tensorflow
pip install pandas
pip install matplotlib
pip install seaborn
pip install plotly
pip install jupyterlab
pip install scipy
pip install scikit-learn
pip install gpyopt
pip install trax==1.3.7

Pythonを起動し下記でTFがGPUを認識していることを確認する。

import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))
print(tf.test.gpu_device_name())
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1