PyTorchの簡単過ぎるインストール【Pythonで機械学習】

PyTorchの簡単過ぎるインストール【Pythonで機械学習】 プログラミング

あなたは、TensorFlow派ですか?
それとも、PyTorch派でしょうか?

正直、もうどっちでもいいと思いませんか?
わたしたち利用者は、両方とも使えばいいのです。
TensorFlowもPyTorchも両方とも使っていきましょう。

この記事では、PyTorchのインストールを解説します。
TensorFlowがインストール済みでも、試してみて損はありません。

びっくりするほどインストールが簡単です。
だから、簡単にPyTorchを試すことができます。

本記事の内容

  • PyTorchとは?
  • PyTorchのシステム要件
  • PyTorchのインストール
  • PyTorchの動作確認

それでは、上記に沿って解説していきましょう。

PyTorchとは?

PyTorchは、Pythonのオープンソースの機械学習ライブラリです。
(この記事では、フレームワークではなくライブラリで表記を統一します)
最初は、Facebookの人工知能研究グループAI Research lab(FAIR)によって開発されました。

機械学習ライブラリにおいては、TensorFlowのライバルです。
それは、ここ1年間の検索ボリュームを見ればわかります。

Google Trendにおける直近1年(2020年1月中旬~2021年1月中旬)の比較結果は、以下。

TensorFlowと PyTorchは、ほぼ互角です。
次に、直近5年間(2016年1月中旬~2021年1月中旬)の比較結果を確認しましょう。

PyTorchの伸びがエグイです。
これには、いろいろと理由があるのでしょう。

個人的には、Chainerの低迷が大きいと思います。
そして、Chainerの開発元企業は2019年12月5日にChainerの開発終了を宣言しています。
今後は、PyTorchへ移行していくということでした。

以下は、直近5年間のTensorFlow、PyTorch、Chainerの比較結果です。
Chainerは、黄色となります。

機械学習の黎明期には、ChainerはTensorFlowといい勝負をしていました。
(※検索ボリュームではなく、あくまで検索トレンドにおいて)
PyTorchの普及とともに、Chainerは低迷していきました。

ただ、利用する側には良い環境となっています。
選択肢が多すぎると、何を使ってよいのか混乱してしまいます。

以前は、さらにCaffe2というライブラリも存在していました。
このCaffe2は、PyTorchにマージ(吸収)されました。

以上より、PyTorchの勢いはホンモノです。
そして、PyTorchは決して無視できないことがわかります。

次は、PyTorchのシステム要件を確認しましょう。

PyTorchのシステム要件

PyTorchのシステム要件におけるポイントは、以下。

  • OS
  • Python
  • CUDA

それぞれを確認していきましょう。

OS

OSは、以下のすべてに対応しています。

  • Windows
  • macOS
  • Linux

Windows 7以降であれば、PyTorchは動くようです。
ただ、Windows 10以降が推奨されています。

Python

Windowsとそれ以外(macOSとLinux)で異なります。

Windowsは、Python 3系のみ対応しています。
それ以外(macOSとLinux)は、Python 3系とPython 2系に対応。

Pythonのバージョンは、以下のコマンドで確認しておきましょう。

>python -V
Python 3.8.6

CUDA

GPUを利用しない場合は、CUDAを無視しても問題ありません。
ただ、GPUを搭載したマシンを使うなら、GPUを利用した方がよいでしょう。

GPUを利用する場合、CUDAが必要となります。
まず、CUDAがインストールされているかどうかを確認する必要があります。

いろいろな方法がありますが、最も簡単な方法はシステム環境変数を見ることです。

「システム環境変数」と入力すると以下が表示されます。

ここで、「システム環境変数の編集」を選択。

「環境変数」ボタンをクリックすると、システム環境変数を確認できます。

システム環境変数の中に、「CUDA_PATH」があるかどうかを確認します。
あれば、CUDAが利用可能な状態と言えます。

なお、上記では次のパスも存在しています。

  • CUDA_PATH_V10_1
  • CUDA_PATH_V10_2
  • CUDA_PATH_V11_0

これは、それぞれのCUDAのバージョンをインストールしているということです。
GPUを利用する場合は、各自で利用可能なCUDAのバージョンを控えておいてください。
ここで控えたCUDAのバージョンが、インストールの際に必要となります。

なお、CUDAに関しては次の記事内でもっと詳しく説明しています。

PyTorchのインストール

PyTorch公式
https://pytorch.org/get-started/locally/

上記ページにアクセスします。
ページ内に以下の表示があるはずです。

ここで各自の環境情報を選択します。
選択した内容によって、インストール用のコマンドがカスタマイズされます。

今回は、以下のように選択。

安定版(Stable 1.7.1)をWindows上にpipコマンドでインストールします。
言語は、もちろんPythonです。
そして、CUDAはバージョン11.0を利用します。

この結果、以下のコマンドが「Run this Command:」に表示されます。

pip install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

あとは、このコマンドを実行するだけです。
ただ、その前に現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2

次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip

では、取得したpipコマンドを実行します。
しばらく待ちます。
インストールが完了したら、パッケージの確認をしましょう。

>pip list
Package           Version
----------------- -----------
numpy             1.19.5
Pillow            8.1.0
pip               20.3.3
setuptools        51.1.2
torch             1.7.1+cu110
torchaudio        0.7.2
torchvision       0.8.2+cu110
typing-extensions 3.7.4.3

依存ライブラリは多くありませんね。
ちなみに、TensorFlowの場合、この4倍ほどの依存ライブラリがインストールされます。
そう考えると、PyTorchはTensorFlowよりも導入しやすいと言えます。

以上より、PyTorchのインストールは完了です。
最後に、PyTorchの動作確認をします。

PyTorchの動作確認

公式に掲載されているPyTorchの動作確認用のコードです。

import torch
x = torch.rand(5, 3)
print(x)

実行すると、以下のような表示がなされます。

tensor([[0.5402, 0.5178, 0.0699],
        [0.0316, 0.3497, 0.0154],
        [0.6478, 0.9491, 0.2383],
        [0.7290, 0.3570, 0.3752],
        [0.0213, 0.4007, 0.1434]])

PyTorchの動作確認としては、以上で問題ありません。
GPUを利用する場合、本当にPyTorchでGPUを認識できているのどうかが気になります。

そのための確認プログラムが以下です。

import torch
print(torch.cuda.is_available())

上記を実行すると判定結果が表示されます。

True

最後に、PyTorchのインストールに関しての感想です。
「本当に簡単すぎる」これに尽きます。

TensorFlowも以前と比べれば、 インストール がかなり簡単にはなりました。
ただ、いまだにGPUを利用する場合はヒヤヒヤしながらインストールします。

でも、PyTorchのインストールではそのヒヤヒヤが全くありませんでした。
インストール用コマンドの発行ツールが、かなり効果的だと感じます。

インストールする側からすれば、迷いがなくなります。
あのような便利ツールは、プログラマーとしたら見習いたいモノです。

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