项目地址
https://gitee.com/wxzcch/pytorchbase/tree/master/leason_1
实现代码
import pandas as pd
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import TensorDataset, DataLoader
train_data = pd.read_csv("./data/BPdata_tr.txt")
test_data = pd.read_csv("./data/BPdata_te.txt")
X_tarin = torch.tensor(train_data[['x1', 'x2']].values).float()
y_train = torch.tensor(train_data['y'].values).float()
X_test = torch.tensor(test_data[['x1', 'x2']].values).float()
y_test = torch.tensor(test_data['y'].values).float()
TrainData_set = TensorDataset(X_train, y_train)
TrainData_loader = DataLoader(dataset = TrainData_set, batch_size = 1, shuffle = True)
class BP_Net(nn.Module):
def __init__(self):
super(BP_Net, self).__init__()
self.fc1 = nn.Linear(2, 4)
self.fc2 = nn.Linear(4, 1)
def forward(self, x):
x = torch.sigmoid(self.fc1(x))
x = torch.sigmoid(self.fc2(x))
return x
model = BP_Net()
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr = 0.85)
EPOCH = 20
for epoch in range(EPOCH):
for inputs, targets in train_loader:
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, targets)
loss.backward()
optimizer.step()
print("【已经完成{}次训练】{} / {}".format(epoch + 1, epoch + 1, EPOCH))
print('训练结束')
model.eval()
with torch.no_grad():
predictions = model(X_test)
errors = predictions.flatten() - y_test.flatten()
mean_error = errors.abs().mean().item()
print("Mean absolute error (MAE): {}".format(mean_error))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具