iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

https://ithelp.ithome.com.tw/upload/images/20251010/20178322qfrMn4pWdf.jpg

今天是我正式「跑通 PyTorch」的一天!
從安裝環境、建虛擬環境,到看到 Loss: 1.2695 那一刻,
真的是 AI 新手踏入深度學習的第一步。

為什麼選擇 PyTorch?

在 AI 領域中,兩大主流框架是 TensorFlow 和 PyTorch。
而 PyTorch 以「直覺」、「靈活」、「研究友好」著稱。
它幾乎就是 NumPy 的升級版 —— 能用 GPU 加速、支援自動微分、還能直接做深度學習。
對我這種來自設計與互動背景的學生來說,
PyTorch 的語法更貼近 Python,也更適合邊試邊學。

⚙️ 建立環境與安裝流程
https://ithelp.ithome.com.tw/upload/images/20251010/201783220BgDlmdPo1.jpg

建立虛擬環境(建議一定要)

 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

🧠 我的第一個 PyTorch 小模型

這是一個最基本的「線性神經網路」,
輸入 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 一直下降時,就是模型「在學習」的證據!

💡 後記:從 Loss=1.26 開始的 AI 之旅

雖然這只是個最小的範例,但這一步非常關鍵,它讓我學會了如何正確建立環境、執行神經網路模型,以及理解 Loss 的概念與訓練流程。
未來,我希望將這樣的模型應用於聲音情緒辨識、視覺互動裝置和情感反應互動展覽,讓 AI 不再只是數學,而是能「有感覺」地與觀眾互動。

👉 明日預告:
Day 14,我將挑戰使用 LSTM 模型,
試著讓模型「記憶」時間序列,
也許會成為未來情感互動裝置的關鍵技術之一。


上一篇
【把 PyTorch 裝進 TouchDesigner】
下一篇
【從靜態神經網路到有「記憶」的網路模型 ——讓 AI 理解時間的流動 | LSTM 時序資料入門】
系列文
AI 情感偵測:從聲音到表情的多模態智能應用15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言