pipでPyTorchをインストールする方法

こんにちは、デジタルボーイです。備忘録がてら、macとLinuxにpipでPyTorchをインストールするための手順を、まとめておきます。

記事を書いた人

デジタルボーイです。
データサイエンス歴20年以上のおっさんです。中小企業診断士として、データサイエンス、WEBマーケティング、SEOに関するデータ分析、コンサルティングの仕事をしています。自己紹介の詳細はコチラ

お時間のない人のための、結論!!

PyTorchのインストールは以下のコマンドで実行できます。

pip install torch torchvision
目次

環境設定

  • OS: macOS
  • Python: 3.8

最新版のPyTorchをインストールする手順

PyTorchは、Pythonで機械学習やディープラーニングを行うためのライブラリです。tensorflowやkerasなどとならんで、人気のあるライブラリでね!特に、研究者から人気のあるライブラリのようです。また、pipによるインストール手順は公式サイトに掲載されています。今回の解説も公式に準拠しています。

以下の手順でインストールできます。

まず、念のため、pipを最新版にアップデートしておきます。

% pip install --upgrade pip

次に、PyTorchをインストールします。torchvisionというのはpytorch内で画像処理を行うための付属ライブラリです。公式サイトにも一緒にインストール手順が書かれているため、一緒にtorchとtorchvisionは一緒にインストールしておきましょう。

% pip install torch torchvision

次脳ように「Succesully」が帰ってきたら成功です。

インストールされたバージョンを確認するには、以下のコマンドを使用します。

% pip show torch

こんな感じで、バージョンを見ることができます。

PyTorchの簡単な使用例

以下は、僕の愛犬(秋田犬)をpytorchを使って分類している例です。

僕の愛犬(秋田犬)

以下のコードで、分類してみましょう(上の犬の画像は右クリックから保存して、実行してみてください)。

import torch
from torchvision import models, transforms
from PIL import Image
import requests
import json

# ImageNetクラスラベルをダウンロード
url = "https://raw.githubusercontent.com/anishathalye/imagenet-simple-labels/master/imagenet-simple-labels.json"
response = requests.get(url)
imagenet_classes = response.text.splitlines()

# 事前訓練済みのResNet18モデルを読み込む
model = models.resnet18(pretrained=True)
model.eval()

# 画像の前処理用の変換を定義
preprocess = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

# 画像を読み込んで前処理
image = Image.open("akitainu.png").convert('RGB')
input_tensor = preprocess(image)
input_batch = input_tensor.unsqueeze(0)

# 推論を実行
with torch.no_grad():
    output = model(input_batch)

# 結果を解釈(上位5つの予測を表示)
_, indices = torch.sort(output, descending=True)
percentage = torch.nn.functional.softmax(output, dim=1)[0] * 100

print("Top 5 predictions:")
for idx in indices[0][:5]:
    class_index = idx.item()
    class_name = imagenet_classes[class_index]
    probability = percentage[class_index].item()
    print(f"{class_index}: {class_name} - {probability:.2f}%")

足りないパッケージがありましたら、別途pipでインストールしてください。

結果はこうなりました。

Top 5 predictions:
222: "Kuvasz", - 37.70% 
258: "Samoyed", - 17.49%
257: "Pyrenean Mountain Dog", - 13.19%
248: "husky", - 10.83%
250: "Siberian Husky", - 7.03%

翻訳するとこんな感じです。どれも秋田犬に見た目が近い犬種がリストアップされていますね!イメージネットという画像データベースには秋田犬はないようなので、まあ、こんな感じでしょう。

  • 222: クヴァース (Kuvasz) – 37.70%
  • 258: サモエド (Samoyed) – 17.49%
  • 257: ピレニアン・マウンテン・ドッグ (Pyrenean Mountain Dog) – 13.19%
  • 248: ハスキー (Husky) – 10.83%
  • 250: シベリアン・ハスキー (Siberian Husky) – 7.03%

まとめ

以上が、pipを使用したPyTorchライブラリのインストール手順と簡単な使用例でした!PyTorchは深層学習モデルの開発に非常に強力なツールで、その柔軟性と効率性から多くの研究者や開発者に愛用されています。ぜひ活用してみてください。

目次