PyTorch实战:全连接网络拟合简单函数
创作时间:
2025-01-21 18:42:07
作者:
@小白创作中心
PyTorch实战:全连接网络拟合简单函数
使用神经网络拟合简单函数是理解神经网络工作原理的一个很好的起点。本文将通过一个具体的实例,展示如何使用PyTorch实现全连接网络来拟合二次函数y = x^2。
代码实现
下面是完整的代码示例:
import torch
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt
# 生成数据
x = torch.linspace(-10, 10, 100).unsqueeze(1)
y = x**2
# 定义全连接网络
class SimpleNN(nn.Module):
def __init__(self):
super(SimpleNN, self).__init__()
self.fc1 = nn.Linear(1, 128)
self.fc2 = nn.Linear(128, 64)
self.fc3 = nn.Linear(64, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = torch.relu(self.fc2(x))
x = self.fc3(x)
return x
# 实例化模型、损失函数和优化器
model = SimpleNN()
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)
# 训练模型
num_epochs = 1000
for epoch in range(num_epochs):
model.train()
optimizer.zero_grad()
outputs = model(x)
loss = criterion(outputs, y)
loss.backward()
optimizer.step()
if (epoch+1) % 100 == 0:
print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
# 预测
model.eval()
predicted = model(x).detach()
# 可视化结果
plt.plot(x.numpy(), y.numpy(), 'ro', label='Original data')
plt.plot(x.numpy(), predicted.numpy(), 'b-', label='Fitted line')
plt.legend()
plt.show()
代码解析
这段代码的具体步骤如下:
- 生成数据:创建输入数据 ( x ) 和对应的标签 ( y )。
- 定义网络结构:创建一个简单的全连接神经网络,包括三层线性层。
- 实例化模型、损失函数和优化器:使用均方误差损失函数和Adam优化器。
- 训练模型:在1000个epoch上训练模型,并在每100个epoch打印一次损失。
- 预测和可视化:使用训练好的模型进行预测,并将原始数据和拟合结果进行可视化。
运行这段代码后,你将看到一个图形,其中红点表示原始的二次函数数据,蓝线表示神经网络拟合的结果。
热门推荐
厕所黄垢清洁剂选择及卫生间保养方法
二手房交易必看:过户费详解与定金违约赔偿指南
超雄,真是“天生坏种”?
发动机果然被制裁了!C919崛起,国产发动机何时撑起“中国心”?
比亚迪宋PLUS DM-i轮胎规格详解
长江禁渔政策实施后:渔民生活现状及转产就业情况调查
电气施工前的准备工作及注意事项
年内“涨停王”锁定!股价一度涨近8倍,今年高热方向回顾,这些板块涨停股涌现
工程地质勘测报告:深入探索工程地质条件,确保工程安全与稳定
【车管小课堂】驾驶人科目二考试知识点—:直角转弯
加气块墙体砌筑施工规范要求
世界上最大的树——巨杉,到底多高?
唯物辩证法的核心:对立统一规律
MOBA游戏全解析:定义与玩法
胶粘剂附着力的机理与理论
肚子赘肉甩不掉?可能缺了这3种关键营养素
全面了解 SQL Server:功能、优势与最佳实践
总胆红素30要不要治疗
骨扫描对别人有辐射吗?医生专业解答来了
双黄虚线交通规则的含义是什么?这种规则对行车安全有何重要性?
雪中悍刀行:共有12位转世之人,其中五位达到陆地天人境
脸部粉刺如何去除
人力资源人员配置比例多少合适?
PC-DMIS最佳拟合坐标系与尺寸评价实用技术详解
看不懂这些密码,药店怎么做客流?
我国银元的发展与含银量变化及鉴别
邻里和谐:构建社区温馨家园的纽带
玫瑰花施肥全攻略:从基肥到追肥,打造健康美丽的玫瑰花园
26考研择校,这几所211性价比很高,却一直被忽视!
从量子通信到量子计算,中国量子信息技术如何“量”力前行