圖片來源:https://analyticsindiamag.com/deep-tech/a-beginners-guide-pytorch/
在深度學習的世界裡,有兩大主流框架:TensorFlow 和 PyTorch
其中,PyTorch 近幾年已經成為研究與產業界的首選。原因很簡單:它更直覺、更靈活,而且更貼近 Python 的使用習慣。
動態計算圖(Dynamic Computation Graph)
不像 TensorFlow 早期需要「先定義整張計算圖,再執行」,PyTorch 的運算圖是動態生成的。
這代表你可以像寫一般 Python 程式一樣邊寫邊跑,非常適合需要「邊實驗邊調整」的情境。
Pythonic 風格
PyTorch 幾乎就是 Python 原生延伸,直覺好懂。寫起來跟 NumPy 很像,只是多了 GPU 加速。
強大的 GPU 支援
搭配 NVIDIA CUDA,可以讓訓練速度飛快(但注意要安裝正確的 CUDA 版本,否則會像你剛剛遇到的只能跑 CPU)。
龐大的社群與資源
PyTorch 有活躍的開發者社群,GitHub、Kaggle、Colab 都有一堆範例程式碼。遇到問題幾乎都能 Google 到解答。
最簡單的方式(CPU 版):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
如果你有 NVIDIA GPU,則需要依照 PyTorch 官網的安裝指令來對應 CUDA 版本。
下面是一個最小可跑的範例,示範如何用 PyTorch 建一個簡單的神經網路:
import torch
import torch.nn as nn
import torch.optim as optim
class SimpleNN(nn.Module):
def __init__(self):
super(SimpleNN, self).__init__()
self.fc = nn.Linear(10, 1) # 輸入 10 維,輸出 1 維
def forward(self, x):
return self.fc(x)
model = SimpleNN()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
x = torch.randn(5, 10) # batch_size=5, 每筆 10 維
y = torch.randn(5, 1) # 目標輸出
output = model(x)
loss = criterion(output, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
print("Loss:", loss.item())
這個範例展示了 PyTorch 的基本流程:
PyTorch 不只用在研究,實務上也能應用在各種領域:
電腦視覺 (CV):影像分類、人臉辨識、物件偵測
自然語言處理 (NLP):聊天機器人、翻譯模型、情緒分析
音訊處理:語音辨識、音樂生成
互動設計 / 藝術:情感計算、互動展覽裝置、動態視覺效果生成
強化學習:自駕車、遊戲 AI
如果你是第一次接觸 PyTorch,我建議這樣學習:
不管你是研究 AI 的學生,還是想把 AI 帶進互動藝術的設計師,PyTorch 都能成為你的工具箱。
從今天開始,打開你的終端機,安裝 PyTorch,試著跑一個小模型吧!
當你第一次看到損失逐漸下降的時候,那種「AI 在學習」的感覺,會讓你上癮 !