はじめに
PyTorchを学び始めるとき、最初につまずきやすいのはモデルの書き方ではなく、実は環境構築です。
Pythonのバージョン、仮想環境、CPU版とGPU版の違い、CUDA、IDEの設定などが少しずれるだけで、import torch が通らなかったり、GPUが認識されなかったりします。逆にここを丁寧に整えておくと、Tensor、autograd、ニューラルネットワーク、画像分類、生成モデルへ進むときの学習がかなり楽になります。
この記事では、PyTorchをこれから学ぶ人に向けて、インストール前に知っておきたい考え方から、CPU環境・NVIDIA GPU環境それぞれの導入手順、動作確認、よくあるトラブルの切り分けまでをまとめます。
このシリーズでは、次回以降でTensor、計算グラフ、autograd、回帰モデル、ニューラルネットワークへ進んでいきます。第1回の目的は、まずPyTorchを安心して動かせる作業環境を作ることです。
目次
- この記事で扱うこと
- PyTorchとは何か
- インストール前に押さえておきたい基礎
- condaで仮想環境を作る
- CUDAとcuDNNの考え方
- PyTorchをインストールする
- インストール後の動作確認
- IDEに環境を認識させる
- おすすめの導入パターン
- よくあるトラブルと確認ポイント
- 参考リンク
- おわりに
この記事で扱うこと
この記事の対象読者は、次のような人です。
- Pythonの基本文法はある程度わかる
- NumPyやpandasを少し触ったことがある
- これからPyTorchで深層学習を学びたい
- CPU環境とGPU環境の違いを整理したい
-
torch.cuda.is_available()がFalseになる理由を自分で切り分けたい
この記事では、PyTorchそのものの文法にはまだ深く入りません。まずは「どのPythonで、どのPyTorchを、どの環境に入れるのか」をはっきりさせます。
PyTorchとは何か
PyTorchは、Pythonから使える機械学習・深層学習のためのオープンソースフレームワークです。もともとはTorchというライブラリの流れをくむプロジェクトで、現在はPyTorch Foundationのもとで開発されています。
PyTorchの中心にあるのはTensorです。Tensorは多次元配列のようなデータ構造で、NumPy配列に近い感覚で扱えます。そこに自動微分、ニューラルネットワーク構築、GPU計算、分散学習、モデル保存、推論、コンパイルなどの機能が組み合わさっています。
代表的な特徴は次のとおりです。
| 特徴 | 内容 |
|---|---|
| Pythonらしく書ける | 通常のPythonコードと組み合わせやすく、条件分岐やループも自然に書ける |
| Tensor操作が中心 | NumPyに近い感覚で多次元データを扱える |
| 自動微分が使える |
torch.autograd により、損失関数からパラメータの勾配を計算できる |
| モデルを部品化しやすい |
torch.nn.Module を使って層やネットワークを整理できる |
| GPUを利用できる | NVIDIA GPU環境ではCUDAを使って計算を高速化できる |
| エコシステムが豊富 |
torchvision、torchaudio、torchtext など周辺ライブラリがある |
研究用途でも実務用途でも広く使われており、画像分類、物体検出、自然言語処理、生成AI、レコメンデーション、時系列予測、強化学習、科学計算など、多くの分野で利用されています。
インストール前に押さえておきたい基礎
PyTorchのインストールでは、いきなりコマンドを貼り付ける前に、次の4つを確認しておくと失敗しにくくなります。
- どのPythonを使っているか
- どの仮想環境にインストールするか
- CPU版でよいか、GPU版が必要か
- NVIDIA GPUを使う場合、ドライバが正しく入っているか
Pythonインタプリタ
Pythonインタプリタとは、Pythonコードを実行する本体です。同じPCの中に複数のPythonが入っていることは珍しくありません。
現在使っているPythonのバージョンは、次のコマンドで確認できます。
python --version
どのPython実行ファイルが使われているかも確認しておくと安心です。
python -c "import sys; print(sys.executable)"
PyTorchはPythonのバージョンによって対応状況が変わります。サポート範囲外のPythonではインストールできないことがあるため、実際にインストールするときは、必ずPyTorch公式サイトのインストールページで対応バージョンを確認してください。
Pythonパッケージ
Pythonでは、外部ライブラリをパッケージとしてインストールします。
たとえば、PyTorch本体は torch、画像処理系の補助ライブラリは torchvision、音声処理系の補助ライブラリは torchaudio というパッケージ名で扱われます。
import torch
import torchvision
import torchaudio
パッケージをインストールするときは、単に pip install と打つより、次のように python -m pip を使うほうが安全です。
python -m pip install パッケージ名
この書き方にすると、「今実行しているPython」に対応するpipが使われます。複数のPythonが入っている環境では、この違いがかなり重要です。
仮想環境
仮想環境は、プロジェクトごとにPythonとパッケージを分けて管理する仕組みです。
たとえば、あるプロジェクトではPyTorchの標準的な構成を使い、別のプロジェクトでは特定のバージョンを固定したいことがあります。すべてを同じ環境に入れてしまうと、依存関係が衝突したり、別の作業が急に動かなくなったりします。
仮想環境を使うと、次のような問題を避けやすくなります。
- プロジェクトごとに必要なライブラリのバージョンが違う
- CPU版とGPU版のPyTorchを混在させてしまう
- IDEとターミナルで別々のPythonを見ている
- 依存関係を整理できず、再現性が低くなる
複数のプロジェクトを掛け持ちする場合は、次のように環境を分けておくとイメージしやすくなります。
OS
├── env-a: Python 3.12 + PyTorch CPU版
├── env-b: Python 3.12 + PyTorch CUDA版
├── env-c: 既存プロジェクト用
└── env-d: 検証・実験用
それぞれの環境はインタプリタとパッケージの集合が独立しているので、どれか1つを更新したり作り直したりしても、他のプロジェクトに影響しません。
PyTorchを学ぶ場合も、専用の仮想環境を1つ作ってからインストールするのがおすすめです。
condaで仮想環境を作る
Python環境の管理にはいくつか方法がありますが、データ分析や機械学習ではcondaを使う場面が多くあります。
condaは、Pythonのパッケージ管理と仮想環境管理をまとめて扱えるツールです。代表的な導入方法には、Anaconda DistributionとMinicondaがあります。
| 種類 | 特徴 |
|---|---|
| Anaconda Distribution | データ分析系パッケージが最初から多く含まれている。容量は大きめ |
| Miniconda | 最小構成から必要なものだけ追加する。軽量で管理しやすい |
これから自分で環境を整理していきたい場合は、Minicondaで十分です。最初から多くのライブラリをまとめて使いたい場合は、Anaconda Distributionでも問題ありません。
Windowsでの注意点
Windowsでは、インストール後にAnaconda PromptまたはMiniconda Promptを使うと環境管理がわかりやすくなります。
インストール時にPATHへ追加するかどうかを聞かれることがありますが、特別な理由がなければ、公式の推奨に従い、専用のPromptから使うほうがトラブルを避けやすいです。すでに別のPythonを入れているPCでは、PATHの競合が原因で思わぬPythonが起動することがあります。
condaが使えるか確認します。
conda --version
インストール済みパッケージを確認したい場合は、次のコマンドを使います。
conda list
PyTorch用の環境を作る
ここでは、pytorch という名前の環境を作ります。Pythonのバージョンは、公式の対応状況を確認したうえで選んでください。以下はPython 3.12を使う例です。
conda create -n pytorch python=3.12
作成した環境を有効化します。
conda activate pytorch
現在の環境で使われているPythonを確認します。
python --version
python -c "import sys; print(sys.executable)"
環境を抜けるときは次のコマンドです。
conda deactivate
環境一覧を確認するには、次のコマンドを使います。
conda env list
不要になった環境を削除する場合は、環境名を指定します。
conda remove -n pytorch --all
環境の作成・共有・削除といった、condaによる環境管理のより詳しいオプションは公式ガイドにまとまっています。
公式ガイド:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
CUDAとcuDNNの考え方
PyTorchをGPUで使いたい場合、CUDAとcuDNNという言葉が出てきます。
CUDAは、NVIDIA GPUを汎用計算に使うためのプラットフォームです。PyTorchのCUDA対応版を入れると、Tensorやニューラルネットワークの計算をGPU上で実行できます。
cuDNNは、深層学習でよく使われる畳み込みや正規化などを高速に処理するためのNVIDIAのライブラリです。
ただし、通常のPyTorchユーザーが最初からCUDA ToolkitやcuDNNを個別に手動インストールする必要があるとは限りません。公式のpip wheelには、PyTorchを実行するために必要なCUDAランタイム関連のコンポーネントが含まれていることが多いためです。
まず確認すべきなのは、NVIDIAドライバが正しく入っているかどうかです。
nvidia-smi
このコマンドでGPU名やドライババージョンが表示されれば、少なくともNVIDIAドライバは認識されています。
注意したいのは、nvidia-smi に表示されるCUDA Versionが、そのPCに同じバージョンのCUDA Toolkitがインストールされていることを意味するわけではない、という点です。これは主に、そのドライバが対応できるCUDAの上限を示す情報です。
CUDA Toolkitを別途インストールする必要が出てくるのは、たとえば次のような場合です。
- CUDA拡張を自分でコンパイルする
- PyTorchをソースからビルドする
- CUDA C++を直接書く
- 特定の研究コードがローカルのCUDA Toolkitを要求している
普通にPyTorchをインストールして学習を始めるだけであれば、まずはPyTorch公式サイトのインストールコマンドに従うのが一番安全です。
PyTorchをインストールする
PyTorchのインストールコマンドは、OS、パッケージ管理ツール、Pythonのバージョン、CPU/GPUの選択によって変わります。
そのため、手元のメモや別の記事に書かれたコマンドをそのままコピーするのではなく、公式のインストールページで自分の環境に合ったコマンドを生成するのが基本です。
公式ページはこちらです。
https://pytorch.org/get-started/locally/
ページでは、主に次の項目を選びます。
| 項目 | 例 |
|---|---|
| PyTorch Build | Stable |
| Your OS | Windows、Linux、macOS |
| Package | Pip、Condaなど |
| Language | Python |
| Compute Platform | CPU、CUDA、ROCmなど |
選択すると、ページ下部にインストールコマンドが表示されます。そのコマンドを、PyTorch用の仮想環境を有効化した状態で実行します。
ここまでの流れをまとめると、次のようになります。
OSとアーキテクチャを確認
-> Pythonが公式サポート範囲内か確認
-> NVIDIA GPUを使うならドライバとnvidia-smiを確認
-> 専用の仮想環境を作成
-> 公式ページでCPU / CUDA / ROCmを選択
-> 生成されたpipコマンドを実行
-> torch.__version__とtorch.cuda.is_available()で確認
CPU版を入れる場合
NVIDIA GPUを使わない場合や、まずは学習用に軽く試したい場合はCPU版で十分です。
典型的には、次のような形式になります。ただし、実際のコマンドは必ず公式ページで確認してください。
python -m pip install torch torchvision torchaudio
CPU版でも、Tensorの基本操作、autograd、線形回帰、小さなニューラルネットワークの学習は十分に試せます。最初からGPU環境にこだわりすぎて詰まるより、まずCPU版でPyTorchの考え方を学ぶのもよい進め方です。
NVIDIA GPU版を入れる場合
NVIDIA GPUを使いたい場合は、公式ページでCUDA対応版を選びます。CUDAの選択肢はPyTorchのリリース時期によって変わるため、手元のメモや別記事にある cu118 や cu121 などの文字列をそのまま使わないようにしてください。
コマンドは、たとえば次のような形式になります。
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
この cu126 はCUDA 12.6向けビルドを表す例です。実際にどのCUDAビルドを選ぶべきかは、GPU、NVIDIAドライバ、PyTorch公式ページの対応状況によって決まります。
公式ページに表示されるCompute Platformの選択肢はリリースごとに変わります。CUDAやROCmのどれを選ぶかは、GPU、ドライバ、OS、PyTorch公式ページの対応状況を見て決めます。実際にインストールする際は、必ずページ上に表示されている一覧から選んでください。
GPU版を入れる前に、次の点を確認しておきます。
- NVIDIA GPUを搭載しているか
-
nvidia-smiが実行できるか - ドライバが選んだCUDAビルドに対応しているか
- 仮想環境が有効化されているか
- CPU版PyTorchをすでに入れていないか
すでにCPU版を入れてしまった場合は、環境を作り直すほうが早いこともあります。学習初期の段階では、環境をきれいに作り直せるようにしておくのも大事です。
wheelファイル名の見方
公式ページが生成したコマンドをそのまま使っていれば意識する必要はありませんが、何らかの事情でwheelファイルを個別にダウンロードするときは、ファイル名の構造を知っておくと安心です。
torch-バージョン+計算プラットフォーム-Pythonタグ-ABIタグ-OS/アーキテクチャ.whl
主なタグの意味は次のとおりです。
| タグ | 意味 |
|---|---|
cu126 |
特定のCUDAランタイム向けビルド |
cpu |
CPU版ビルド |
cp312 |
CPython 3.12向け |
win_amd64 |
Windows 64bit(x86系) |
Pythonのバージョン、プラットフォームタグ、アーキテクチャのいずれか1つでもずれていると、No matching distribution found や「サポートされていないwheel」といったエラーになります。基本的には公式ページが生成するpipコマンドをそのまま使い、wheelファイルを手動で選ぶ場面自体を減らすのがおすすめです。
インストール後の動作確認
インストールが終わったら、まず torch をインポートできるか確認します。
import torch
print("PyTorch version:", torch.__version__)
print("CUDA build:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("GPU count:", torch.cuda.device_count())
print("GPU name:", torch.cuda.get_device_name(0))
CPU版を入れた場合、torch.cuda.is_available() が False でも問題ありません。GPUを使うつもりで入れたのに False になる場合は、後述の確認ポイントを見てください。
次に、簡単なTensor計算を実行します。
import torch
x = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
y = x * 2
print(y)
GPUが使える場合は、CUDA上にTensorを作ってみます。
import torch
if torch.cuda.is_available():
x = torch.randn(3, 3, device="cuda")
print(x)
else:
print("CUDA対応GPUはこの環境では利用できません。")
ここまで通れば、PyTorchの基本的なインストールは成功です。
IDEに環境を認識させる
ターミナルでは動くのに、IDEでは import torch が失敗することがあります。これは多くの場合、IDEが別のPythonインタプリタを見ていることが原因です。
PyCharm、VS Code、Jupyter Notebookなどを使う場合は、作成した仮想環境のPythonを明示的に選びます。
PyCharmの場合
PyCharmでは、プロジェクト設定からPythonインタプリタを選びます。
既存のconda環境を使う場合は、pytorch 環境のPython実行ファイルを指定します。設定後、PyCharmのTerminalやPython Consoleで次を実行して確認します。
import sys
import torch
print(sys.executable)
print(torch.__version__)
ここで表示されるPythonのパスが、先ほど作ったconda環境を指していれば大丈夫です。
VS Codeの場合
VS Codeでは、コマンドパレットからPythonインタプリタを選択します。
Python: Select Interpreter
一覧から pytorch 環境を選びます。選択後、ターミナルを開き直して、次のコマンドを確認します。
python -c "import sys; print(sys.executable)"
python -c "import torch; print(torch.__version__)"
Notebookを使う場合は、Notebookのカーネルも同じ環境になっているか確認してください。ターミナル、エディタ、Notebookがそれぞれ別のPythonを見ていると、インストール済みなのに読み込めない、という状態になりがちです。
おすすめの導入パターン
ここでは、よくある2つのパターンに分けて流れを整理します。
パターン1:CPUでまず学ぶ
GPUがなくても、PyTorchの基礎学習は十分に始められます。Tensor操作、autograd、線形回帰、ロジスティック回帰、小規模なニューラルネットワークであればCPUでも問題ありません。
流れは次のとおりです。
- MinicondaまたはAnacondaをインストールする
- PyTorch用の仮想環境を作る
- 仮想環境を有効化する
- PyTorch公式ページでCPU版のコマンドを取得する
-
python -m pipでインストールする -
import torchとTensor計算で動作確認する - IDEやNotebookに同じ環境を認識させる
コマンド例です。
conda create -n pytorch python=3.12
conda activate pytorch
python -m pip install torch torchvision torchaudio
繰り返しますが、実際のインストールコマンドは公式ページで確認してください。
パターン2:NVIDIA GPUを使う
画像モデルや大きめのニューラルネットワークを本格的に動かす場合は、GPUがあると学習時間を大きく短縮できます。
流れは次のとおりです。
- NVIDIA GPUを搭載しているか確認する
- NVIDIAドライバをインストールまたは更新する
-
nvidia-smiでGPUが認識されるか確認する - PyTorch用の仮想環境を作る
- PyTorch公式ページでCUDA対応版のコマンドを取得する
- 仮想環境内でインストールする
-
torch.cuda.is_available()で確認する - IDEやNotebookでも同じ環境を使う
GPU版では、Python、PyTorch、CUDAビルド、NVIDIAドライバの組み合わせが重要です。うまくいかない場合は、やみくもに別のコマンドを試すより、どこがずれているかを順番に確認するほうが早く解決できます。
よくあるトラブルと確認ポイント
import torch が失敗する
まず確認するのは、今使っているPythonにPyTorchが入っているかです。
python -c "import sys; print(sys.executable)"
python -m pip show torch
pip show torch で何も表示されない場合、そのPython環境にはPyTorchが入っていません。仮想環境を有効化してから、公式コマンドで再インストールします。
torch.cuda.is_available() が False になる
CPU版を入れている場合は、False で正常です。
GPU版を入れたつもりなのに False になる場合は、次の順に確認します。
- PCにNVIDIA GPUがあるか
-
nvidia-smiが実行できるか - NVIDIAドライバが古すぎないか
- CPU版PyTorchを入れていないか
- PyTorchを入れた環境と、実行しているPythonが同じか
- WSLやDockerを使っている場合、GPUが正しく渡されているか
Python側からも確認します。
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())
torch.version.cuda が None の場合は、CPU版が入っている可能性が高いです。
No matching distribution found が出る
このエラーは、指定したPyTorchのwheelが現在の環境に合っていないときによく出ます。
主な原因は次のとおりです。
- PythonのバージョンがPyTorchのサポート範囲外
- 32bit Pythonを使っている
- pipのバージョンが対応していない
- OSやCPUアーキテクチャが対応外
- 公式ページ以外のインストールコマンドを使っている
まずPythonとpipを確認します。
python --version
python -m pip --version
python -m pip install --upgrade pip
そのうえで、PyTorch公式ページから改めてコマンドを取得します。
ターミナルでは動くのにIDEでは動かない
ほとんどの場合、IDEが別のPythonを使っています。
ターミナルとIDEの両方で次を実行してください。
import sys
print(sys.executable)
表示されたパスが違う場合、同じ仮想環境を使うようにIDEのインタプリタ設定を変更します。
condaとpipを混ぜてよいか迷う
conda環境の中でpipを使うこと自体はよくあります。ただし、同じパッケージをcondaとpipの両方から入れたり、環境をまたいでインストールしたりすると、依存関係がわかりにくくなります。
PyTorchについては、まず公式ページが出すコマンドに従い、1つの環境の中で完結させるのがおすすめです。
環境を記録しておきたい場合は、pipなら次のように保存できます。
python -m pip freeze > requirements.txt
conda環境として最小限の履歴を残したい場合は、次のコマンドも使えます。
conda env export --from-history > environment.yml
参考リンク
- PyTorch公式サイト: https://pytorch.org/
- PyTorchインストールページ: https://pytorch.org/get-started/locally/
- PyTorchドキュメント: https://pytorch.org/docs/
- Anacondaインストールガイド: https://www.anaconda.com/docs/getting-started/installation
- conda環境管理: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
- PyCharmインストールガイド: https://www.jetbrains.com/help/pycharm/installation-guide.html
- VS Code Python拡張: https://marketplace.visualstudio.com/items?itemName=ms-python.python
PyTorchドキュメントには、torch.Tensor、torch.autograd、torch.func、torch.compile、torch.export、AMP、分散学習、チェックポイント、プロファイリングといった機能がまとまっています。次回以降でTensorやautogradを扱うときも、まず公式ドキュメントからAPIを探すと迷いにくいはずです。
おわりに
PyTorchの環境構築で大事なのは、特別な裏技を覚えることではありません。
大事なのは、使っているPython、仮想環境、CPU/GPUの選択、NVIDIAドライバ、IDEのインタプリタを1つずつ確認することです。ここが整理できていれば、インストール時のエラーもかなり切り分けやすくなります。
次回は、PyTorchの中心となるTensorを扱います。Tensorの形状、データ型、デバイス、作成方法を理解すると、PyTorchのコードが一気に読みやすくなります。