在Torch中處理回歸任務通常需要定義一個損失函數和優化器來訓練模型。首先,定義一個損失函數來衡量模型預測與真實值之間的差距,常用的損失函數包括均方誤差(Mean Squared Error)和平均絕對誤差(Mean Absolute Error)等。然后使用一個優化器來調整模型參數以最小化損失函數,常用的優化器包括隨機梯度下降(SGD)和Adam等。
下面是一個簡單的示例代碼來處理回歸任務:
import torch
import torch.nn as nn
import torch.optim as optim
# 定義數據
X = torch.tensor([[1.0], [2.0], [3.0]])
y = torch.tensor([[2.0], [4.0], [6.0]])
# 定義模型
model = nn.Linear(1, 1)
# 定義損失函數和優化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 訓練模型
for epoch in range(100):
optimizer.zero_grad()
outputs = model(X)
loss = criterion(outputs, y)
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0:
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 100, loss.item()))
# 測試模型
with torch.no_grad():
test_input = torch.tensor([[4.0]])
predicted = model(test_input)
print('Predicted value: {:.2f}'.format(predicted.item()))
在上面的代碼中,我們首先定義了數據X和y,然后定義了一個簡單的線性模型,損失函數為均方誤差,優化器為隨機梯度下降。接下來進行模型訓練,每個epoch計算損失并更新模型參數,最后測試模型并輸出預測結果。