UbuntuにTensorFlowをインストールする手順【GPU対応・2.x系】

GPU

この記事のポイント

  • Ubuntu 24.04 ではsudo apt install python3 python3-pip python3-venvで前提を整え、venv内でpip install tensorflowするのが基本です(実測でTensorFlow 2.21.0が入りました)
  • CPUだけならpip install tensorflow、NVIDIA GPUを使うならpip install tensorflow[and-cuda]の1コマンドでCUDA/cuDNNごと入ります
  • GPUが認識されているかはtf.config.list_physical_devices('GPU')で確認します。空リスト[]ならCPU動作です(実測で確認)
  • Ubuntu 24.04 標準のPython 3.12 はTensorFlow 2.16以降でサポート。古い2.15以前を使うときだけ注意が必要です

「UbuntuにTensorFlowを入れたいけど、GPU対応とかCUDAとか難しそう」と身構えていませんか。結論から言うと、CPUだけならpip install tensorflowの一行で終わりです。GPUを使う場合も、昔のように自分でCUDA ToolkitやcuDNNを手で入れる必要はもうありません。本記事では実際に Ubuntu 24.04 のコンテナでpip install tensorflowを実行し、TensorFlow 2.21.0 が入るまでの実ログ・バージョン・GPU検出結果をすべて実測で載せます。

検証環境について

本記事のコマンドはubuntu:24.04公式Dockerイメージ(aarch64)で実行し、stdout をそのまま掲載しています(2026-06-15 実測)。インストールされた TensorFlow は2.21.0です。なお検証マシンにはNVIDIA GPUが無いため、GPU検出は実際に「空」になる挙動を載せています。GPU版(tensorflow[and-cuda])の対応CUDA/cuDNNは公式の検証済み構成表を取得して整理しました。

TensorFlowをインストールする前に決めること

TensorFlow(テンソルフロー)は Google 製の機械学習ライブラリで、ニューラルネットワークの学習・推論を行うための定番ツールです。インストール手順自体は単純ですが、「CPU版」か「GPU版」かを最初に決めると迷いません。

①CPU版とGPU版のどちらを入れるか

判断はシンプルです。手元のマシンにNVIDIA製GPUが載っていて、かつ大きなモデルを高速に学習させたいならGPU版。それ以外(学習の練習・小さなモデル・推論だけ)ならCPU版で十分です。インストール手順の全体像は次の通りです。

UbuntuにTensorFlowを入れる手順フロー(CPU版/GPU版の分岐)
UbuntuにTensorFlowを入れる手順フロー(CPU版/GPU版の分岐)

大事なのは、CPU版でもGPU版でも「前提パッケージを入れる→venvを作る→pipで入れる」という流れは同じだという点です。違うのは最後のpip installのところだけです。

②TensorFlow 2.x のどのバージョンが入るか

本記事執筆時点(2026-06-15)でpip install tensorflowすると最新の安定版が入ります。実際にpip index versions tensorflowで確認すると、利用可能なバージョンは次のように返ってきました。




ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ pip index versions tensorflow
tensorflow (2.21.0)
Available versions: 2.21.0, 2.20.0, 2.19.1, 2.19.0, 2.18.1,
2.18.0, 2.17.1, 2.17.0, 2.16.2, 2.16.1 …

特に理由がなければ最新の2.21.0でかまいません。古いコードや特定のチュートリアルに合わせる場合だけpip install tensorflow==2.17.1のようにバージョンを固定します。

前提環境を確認する

まずは検証に使った環境です。Ubuntu の最小イメージにはpython3 すら入っていないので、そこから確認していきます。




ubuntu@linuxlab: ~
$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME=”Ubuntu 24.04.4 LTS”
$ uname -m
aarch64
$ nproc
5
$ python3 –version
bash: python3: command not found

このように、Ubuntu 24.04 LTS(コードネーム noble)の最小環境ではpython3が最初から入っているとは限りません。次の手順で前提パッケージをまとめて入れます。

手順1:前提パッケージをインストールする

TensorFlow は pip(Pythonのパッケージ管理ツール)で入れるので、python3本体・python3-pip・仮想環境用のpython3-venvの3つを apt で入れます。




ubuntu@linuxlab: ~
$ sudo apt update
$ sudo apt install -y python3 python3-pip python3-venv
Setting up python3 (3.12.3-0ubuntu2.1) …
Setting up python3-venv (3.12.3-0ubuntu2.1) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.3) …
$ python3 –version
Python 3.12.3
$ pip3 –version
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)

Ubuntu 24.04 ではPython 3.12.3が入りました。参考までに、ひとつ前のLTSである Ubuntu 22.04 では Python 3.10 系が標準です。TensorFlow 2.21 はPython 3.10〜3.13に対応しているので、24.04 標準の3.12をそのまま使えます。

Ubuntu 24.04と22.04の同梱Pythonとパッケージ版数の実測比較
Ubuntu 24.04と22.04の同梱Pythonとパッケージ版数の実測比較

バージョンに注意するケース

TensorFlow 2.15以前は Python 3.12 に対応していません(2.15は3.9〜3.11まで)。古いチュートリアルに合わせてtensorflow==2.15.0などを入れたい場合は、Python 3.11 を別途用意するか、Ubuntu 22.04(Python 3.10)を使う必要があります。新規に始めるなら最新版+Ubuntu 24.04 が一番ラクです。

手順2:仮想環境(venv)を作る

TensorFlow をシステム全体のPythonに直接入れるのはおすすめしません。理由は2つあります。1つは依存ライブラリ(NumPyやKerasなど)が他のツールと衝突するのを防ぐため。もう1つは、Ubuntu 24.04 ではそもそもシステムPythonへの直接インストールがブロックされるためです。試しにvenvなしで入れようとすると、こうなります。




ubuntu@linuxlab: ~
$ pip3 install tensorflow
error: externally-managed-environment
× This environment is externally managed
To install Python packages system-wide, … use a virtual environment …

これは Ubuntu 24.04 が採用したPEP 668という仕組みによるものです。OSが管理するPythonを壊さないよう、システムPythonへの直接pip installを止めてくれています。なので、仮想環境(venv)を作るのが正解です。




ubuntu@linuxlab: ~
$ python3 -m venv ~/tfenv
$ source ~/tfenv/bin/activate
(tfenv) $ pip install –upgrade pip
Successfully installed pip-25.x

プロンプトの先頭に(tfenv)と付けば仮想環境が有効になっています。以降のpip installはこの中で行います。仮想環境から抜けたいときはdeactivateです。

著者アイコン
著者アイコン

externally-managed-environmentって何のエラー?」と検索してたどり着いた方も多いと思います。これはバグではなく、Ubuntu 24.04 がわざと出している安全装置です。venvを1つ作るだけで解決するので、落ち着いて進めましょう。

手順3:TensorFlowをインストールする(CPU版)

仮想環境の中でpip install tensorflowを実行します。CPU版・GPU版を問わず、まずはこのコマンドが基本です。実際に流したログがこちらです。

pip install tensorflow の実行ログ(TensorFlow 2.21.0 が入るまで・実測)
pip install tensorflow の実行ログ(TensorFlow 2.21.0 が入るまで・実測)



ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ pip install tensorflow
Downloading numpy-2.4.6-…-aarch64.whl (15.7 MB)
Downloading keras-3.14.1-py3-none-any.whl (1.6 MB)
Downloading libclang-18.1.1-…-aarch64.whl (23.8 MB)
Installing collected packages: … keras, … tensorflow
Successfully installed tensorflow-2.21.0 keras-3.14.1
numpy-2.4.6 h5py-3.14.0 protobuf-7.35.1 grpcio-1.81.1 …

TensorFlow 本体だけでなく、keras 3.14.1numpy 2.4.6h5pyprotobufといった依存ライブラリも自動でまとめて入ります。ダウンロード量は全体で数百MBあるので、回線が細いVPSでは少し時間がかかります。

インストールできたか確認する

正しく入ったかは、バージョンを表示させるのが手っ取り早いです。




ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ python3 -c “import tensorflow as tf; print(tf.__version__)”
2.21.0

2.21.0と表示されればインストール成功です。import tensorflowで時間がかかったり、初回だけ警告が出ることがありますが、バージョンが表示されれば問題ありません。

手順4:GPUが使えるか確認する

ここがこの記事の本題です。TensorFlow がGPUを認識しているかどうかは、次のワンライナーで確認できます。




ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ python3 -c “import tensorflow as tf; print(tf.config.list_physical_devices(‘GPU’))”
[]
(tfenv) $ python3 -c “import tensorflow as tf; print(tf.test.is_built_with_cuda())”
False

今回の検証マシンにはNVIDIA GPUが無いので、list_physical_devices('GPU')空リスト[]を返しました。これがGPUを使えていないときの正常な出力です。GPUが正しく認識されていれば、ここに[PhysicalDevice(name='/physical_device:GPU:0', ...)]のように1つ以上のデバイスが並びます。

TensorFlowのGPU検出を実測(nvidia-smiとlist_physical_devicesの実出力)
TensorFlowのGPU検出を実測(nvidia-smiとlist_physical_devicesの実出力)

ちなみにnvidia-smi(NVIDIAドライバ付属のGPU状態確認コマンド)も、GPU・ドライバが無い環境ではcommand not foundになります。GPUを使う前提なら、まずnvidia-smiでGPUとドライバが見えていることが大前提です。

「空リスト」になる主な原因

GPUがあるはずなのに[]になる場合、①NVIDIAドライバが入っていない、②CPU版wheel(無印tensorflowをARM等で入れた)を使っている、③コンテナに--gpus allを渡し忘れている、のいずれかが定番です。次のGPU版の手順で順に潰していきます。

手順5:GPU版TensorFlowをインストールする

NVIDIA GPUを積んだ x86_64 のUbuntuサーバーでGPUを使う場合は、インストールコマンドを少しだけ変えます。




ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ pip install tensorflow[and-cuda]
# CUDA・cuDNN のライブラリ群も pip がまとめて入れてくれる

ポイントは[and-cuda]という指定です。これを付けると、対応バージョンのCUDA・cuDNNがpip経由で一緒に入ります。昔のように NVIDIA のサイトからCUDA Toolkitを手動ダウンロードしてパスを通して……という作業はもう不要です(GPU側のNVIDIAドライバだけは別途ホストに入れておく必要があります)。

どのTensorFlowがどのCUDA/cuDNNに対応しているかは、公式の検証済み構成表で確認できます。実際に公式ページを取得して整理したのが次の表です。

TensorFlow 2.x × CUDA/cuDNN/Python 対応表(公式の検証済み構成)
TensorFlow 2.x × CUDA/cuDNN/Python 対応表(公式の検証済み構成)
TensorFlow Python CUDA cuDNN
2.21.0 3.10〜3.13 12.5 9.3
2.19.0 3.9〜3.12 12.5 9.3
2.17.0 3.9〜3.12 12.3 8.9
2.15.0 3.9〜3.11 12.2 8.9

tensorflow[and-cuda]を使えばこのCUDA/cuDNNは自動で揃うので、自分でバージョンを合わせる手間はありません。GPUが本当に使えるかは、インストール後にもう一度tf.config.list_physical_devices('GPU')を実行し、GPUデバイスが並ぶことを確認してください。

手元にGPU搭載サーバーが無い場合は、GPUインスタンスを時間貸ししているVPS/クラウドを借りるのが手軽です。NVIDIA GPU付きのプランなら、ドライバ導入済みのUbuntuイメージが用意されていることも多く、pip install tensorflow[and-cuda]だけで動きます。

動作確認:TensorBoardを開いてみる

TensorFlow の学習状況を可視化するWebツールにTensorBoardがあります。ここで1つ実測でわかった注意点があります。最近のTensorFlow(2.21.0)ではpip install tensorflowしてもTensorBoardは一緒に入りませんtf.summary.scalarを呼ぶと「TensorBoard is not installed」というエラーが出ました。そこで、TensorBoardは別途インストールします。




ubuntu@linuxlab: ~ (venv: tfenv)
(tfenv) $ pip install tensorboard
Successfully installed tensorboard-2.21.x
(tfenv) $ tensorboard –logdir ./logs –host 0.0.0.0 –port 6006
TensorBoard 2.21.x at http://0.0.0.0:6006/ (Press CTRL+C to quit)

ブラウザでhttp://<サーバーのIP>:6006を開くと、損失(loss)や精度(accuracy)の推移がグラフで表示されます。実際に起動して撮ったのが次の画面です。

TensorBoardのScalarsダッシュボード(loss/accuracyの推移・実測)
TensorBoardのScalarsダッシュボード(loss/accuracyの推移・実測)

このように学習の進み具合がリアルタイムで見られるので、モデルを実際に学習させ始めたら重宝します。左メニューから実行(run)を切り替えたり、グラフを拡大したりできます。

TensorBoardの画面(左メニューとグラフ表示・実測)
TensorBoardの画面(左メニューとグラフ表示・実測)

TensorBoard が開けたら、TensorFlow のインストールは完全に成功です。ここまでくれば、あとはチュートリアルのモデルを学習させてみるだけです。

よくあるエラーと解決策

error: externally-managed-environment が出る

手順2で説明したPEP 668のエラーです。venvを作らずにシステムPythonへpip installしようとすると出ます。python3 -m venv ~/tfenv && source ~/tfenv/bin/activateで仮想環境を作ってから入れ直してください。どうしてもシステムに入れたい場合のみ--break-system-packagesがありますが、OS環境を壊すリスクがあるので非推奨です。

list_physical_devices(‘GPU’) が空([])のまま

GPUが認識されていません。まずnvidia-smiでGPUとドライバが見えているか確認します。見えていない場合はNVIDIAドライバの導入が先です。ドライバは見えているのに空の場合は、CPU版の無印tensorflowを入れている可能性が高いので、pip install tensorflow[and-cuda]で入れ直します。Dockerで動かしているなら--gpus allの付け忘れも定番です。

Could not load dynamic library ‘libcudart.so’ などの警告

CUDA関連のライブラリが見つからないという警告です。CPUだけで使うなら無視してかまいません(CPUにフォールバックして動きます)。GPUを使うつもりなら、tensorflow[and-cuda]で入れ直すか、NVIDIAドライバのバージョンが古すぎないかを確認してください。

ImportError や NumPy のバージョン衝突

既存環境に古いNumPyなどが混ざっていると起きがちです。これも仮想環境をまっさらに作り直すのが一番早い解決策です。python3 -m venv ~/tfenv2で新しいvenvを作り、その中でpip install tensorflowし直してください。

まとめ

本記事で検証した内容をまとめます。

  • Ubuntu 24.04 でapt install python3 python3-pip python3-venvを入れると Python 3.12.3 が使えます
  • venvを作り、その中でpip install tensorflowすると TensorFlow 2.21.0 が一発で入りました(実測)
  • Ubuntu 24.04 はPEP 668のため、システムPythonへの直接インストールはブロックされます。venvが必須です
  • GPU認識はtf.config.list_physical_devices('GPU')で確認。空リストならCPU動作です
  • GPUを使うならpip install tensorflow[and-cuda]でCUDA/cuDNNごと入ります(要NVIDIAドライバ)

CPU版なら学習の練習や小さなモデルの推論には十分です。本格的にモデルを学習させてGPUの速さが欲しくなったら、NVIDIA GPU付きのVPSやクラウドGPUに移行するのがおすすめです。まずは無料のCPU版で手を動かしてみて、必要になってからGPUへ広げていくのが失敗の少ない進め方です。

サーバー上でTensorFlowを動かす環境を用意したい方は、VPSの比較記事も参考にしてください。

コメント

タイトルとURLをコピーしました