1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

PyTorchを学び始めるとき、最初につまずきやすいのはモデルの書き方ではなく、実は環境構築です。

Pythonのバージョン、仮想環境、CPU版とGPU版の違い、CUDA、IDEの設定などが少しずれるだけで、import torch が通らなかったり、GPUが認識されなかったりします。逆にここを丁寧に整えておくと、Tensor、autograd、ニューラルネットワーク、画像分類、生成モデルへ進むときの学習がかなり楽になります。

この記事では、PyTorchをこれから学ぶ人に向けて、インストール前に知っておきたい考え方から、CPU環境・NVIDIA GPU環境それぞれの導入手順、動作確認、よくあるトラブルの切り分けまでをまとめます。

このシリーズでは、次回以降でTensor、計算グラフ、autograd、回帰モデル、ニューラルネットワークへ進んでいきます。第1回の目的は、まずPyTorchを安心して動かせる作業環境を作ることです。

目次

この記事で扱うこと

この記事の対象読者は、次のような人です。

  • 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を使って計算を高速化できる
エコシステムが豊富 torchvisiontorchaudiotorchtext など周辺ライブラリがある

研究用途でも実務用途でも広く使われており、画像分類、物体検出、自然言語処理、生成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のリリース時期によって変わるため、手元のメモや別記事にある cu118cu121 などの文字列をそのまま使わないようにしてください。

コマンドは、たとえば次のような形式になります。

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でも問題ありません。

流れは次のとおりです。

  1. MinicondaまたはAnacondaをインストールする
  2. PyTorch用の仮想環境を作る
  3. 仮想環境を有効化する
  4. PyTorch公式ページでCPU版のコマンドを取得する
  5. python -m pip でインストールする
  6. import torch とTensor計算で動作確認する
  7. IDEやNotebookに同じ環境を認識させる

コマンド例です。

conda create -n pytorch python=3.12
conda activate pytorch
python -m pip install torch torchvision torchaudio

繰り返しますが、実際のインストールコマンドは公式ページで確認してください。

パターン2:NVIDIA GPUを使う

画像モデルや大きめのニューラルネットワークを本格的に動かす場合は、GPUがあると学習時間を大きく短縮できます。

流れは次のとおりです。

  1. NVIDIA GPUを搭載しているか確認する
  2. NVIDIAドライバをインストールまたは更新する
  3. nvidia-smi でGPUが認識されるか確認する
  4. PyTorch用の仮想環境を作る
  5. PyTorch公式ページでCUDA対応版のコマンドを取得する
  6. 仮想環境内でインストールする
  7. torch.cuda.is_available() で確認する
  8. 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 になる場合は、次の順に確認します。

  1. PCにNVIDIA GPUがあるか
  2. nvidia-smi が実行できるか
  3. NVIDIAドライバが古すぎないか
  4. CPU版PyTorchを入れていないか
  5. PyTorchを入れた環境と、実行しているPythonが同じか
  6. WSLやDockerを使っている場合、GPUが正しく渡されているか

Python側からも確認します。

import torch

print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())

torch.version.cudaNone の場合は、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ドキュメントには、torch.Tensortorch.autogradtorch.functorch.compiletorch.export、AMP、分散学習、チェックポイント、プロファイリングといった機能がまとまっています。次回以降でTensorやautogradを扱うときも、まず公式ドキュメントからAPIを探すと迷いにくいはずです。

おわりに

PyTorchの環境構築で大事なのは、特別な裏技を覚えることではありません。

大事なのは、使っているPython、仮想環境、CPU/GPUの選択、NVIDIAドライバ、IDEのインタプリタを1つずつ確認することです。ここが整理できていれば、インストール時のエラーもかなり切り分けやすくなります。

次回は、PyTorchの中心となるTensorを扱います。Tensorの形状、データ型、デバイス、作成方法を理解すると、PyTorchのコードが一気に読みやすくなります。

1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?