Pytorch

PyTorchとは一言で?
“AIモデルを作るための、プログラミング用の工具セット”

ニューラルネットワークを作る
訓練(train)する
GPUで高速計算する
推論(inference)する

こういった処理を 簡単に・速く実装できる のが PyTorch。
🧠 PyTorch がよく使われる理由(特徴)
① 直感的で書きやすい(Pythonらしい書き味)
コードが自然でシンプル。
数学より「書きながら理解できる」スタイル。

例)テンソルを作る:
import torch
x = torch.tensor([1.0, 2.0, 3.0])

② 自動で微分(自動微分)ができる
ニューラルネットの学習に必要な“勾配”を
勝手に計算してくれる仕組みがあります。

x = torch.tensor(2.0, requires_grad=True)
y = x**2
y.backward()
print(x.grad) # 4 が自動で計算される

③ GPUを簡単に使える(高速)

AI学習は重い処理ですが、
PyTorchは GPU を簡単に使えます。

device = “cuda” if torch.cuda.is_available() else “cpu”
x = torch.randn(1000, 1000).to(device)

④ 研究コミュニティに強い
論文
最新モデル
サンプルコード

多くがまず PyTorch で公開されるため、
最新AIに触れたい人に必須。

⑤ 大規模AIモデルと相性がよい
ChatGPT などの LLM(大規模言語モデル)も
裏側で PyTorch を使っている場合が多い。

📦 PyTorchでできることの例
画像分類(猫 / 犬を判定)
物体検出(人・車を検出)
音声認識
文章生成(GPT系)
翻訳モデル
音声合成(TTS)
3Dモデル生成
動画AI
AIのほぼすべての分野に使える万能ツールです。

🏗 PyTorch の基本構造
PyTorch はざっくりこの5つでできています:
Tensor(テンソル)
→ 画像・音声・テキストなど全データの“入れ物”
Autograd(自動微分)
→ 学習に必要な勾配を自動計算
nn(ニューラルネットワーク)
→ 層(Layer)を作る
optim(最適化)
→ 重みを更新して学習
dataloader
→ データを読み込んで学習に渡す

import torch
import torch.nn as nn
import torch.optim as optim

# 1. モデル
model = nn.Linear(1, 1)

# 2. 損失関数
criterion = nn.MSELoss()

# 3. 最適化
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 4. 学習ループ
for _ in range(100):
    x = torch.tensor([[1.0]])
    y = torch.tensor([[2.0]])

    pred = model(x)
    loss = criterion(pred, y)

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

print(model.weight, model.bias)