今天是我正式「跑通 PyTorch」的一天!
從安裝環境、建虛擬環境,到看到 Loss: 1.2695 那一刻,
真的是 AI 新手踏入深度學習的第一步。
在 AI 領域中,兩大主流框架是 TensorFlow 和 PyTorch。
而 PyTorch 以「直覺」、「靈活」、「研究友好」著稱。
它幾乎就是 NumPy 的升級版 —— 能用 GPU 加速、支援自動微分、還能直接做深度學習。
對我這種來自設計與互動背景的學生來說,
PyTorch 的語法更貼近 Python,也更適合邊試邊學。
⚙️ 建立環境與安裝流程
建立虛擬環境(建議一定要)
python -m venv venv313
.\venv313\Scripts\Activate.ps1
升級 pip
pip install --upgrade pip
安裝 PyTorch(CPU 版)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
確認安裝成功
import torch
print("PyTorch:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
print("Device:", "cuda" if torch.cuda.is_available() else "cpu")
執行後會得到類似:
PyTorch: 2.8.0+cpu
CUDA available: False
Device: cpu
這是一個最基本的「線性神經網路」,
輸入 10 維 → 輸出 1 維,用隨機數據訓練一次。
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)
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=5, 每筆10維
y = torch.randn(5, 1) # 目標輸出
# 前向傳播、反向傳播、更新權重
optimizer.zero_grad()
output = model(x)
loss = criterion(output, y)
loss.backward()
optimizer.step()
print("Loss:", loss.item())
執行結果:
Loss: 1.2695467472076416
🎉 恭喜!這就是你的第一個 PyTorch 模型成功運作!
如果你想看 Loss 真的變小,可以加上訓練迴圈:
for epoch in range(50):
optimizer.zero_grad()
output = model(x)
loss = criterion(output, y)
loss.backward()
optimizer.step()
print(f"Epoch [{epoch+1}/50], Loss: {loss.item():.4f}")
結果:
Epoch [1/50], Loss: 1.27
Epoch [2/50], Loss: 1.10
Epoch [3/50], Loss: 0.94
...
看到 Loss 一直下降時,就是模型「在學習」的證據!
👉 明日預告:
Day 14,我將挑戰使用 LSTM 模型,
試著讓模型「記憶」時間序列,
也許會成為未來情感互動裝置的關鍵技術之一。