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打印一次损失。
- 预测和可视化:使用训练好的模型进行预测,并将原始数据和拟合结果进行可视化。
运行这段代码后,你将看到一个图形,其中红点表示原始的二次函数数据,蓝线表示神经网络拟合的结果。
热门推荐
从茶道到动漫:日本八大文化瑰宝展现东方美学
南昌到镇远古镇自驾游,绝美路线揭秘!
除夕祭祖必知:「3不带,3不宜」全解析
黄帝陵祭祀供品的历史渊源与文化内涵
A-Level化学考试必备:元素化合价解析
中考化学冲刺:元素化合价速记技巧
从蜕凡到皇者:详解《长生界》十二重天修炼体系
水中人参配鸡蛋,这道养生汤适合脾胃虚弱者
AI情感计算:从识别表情到心理治疗的应用革命
金牛座今日运势:爱情事业双丰收的绝佳时机
日语动漫和歌曲让你秒变日语达人
电子残疾人证申请全攻略:条件、流程及使用指南
你的庭院别墅花园需要设计些什么
机油刹车轮胎都要查,这份自驾游车检清单请收好
中国画重意境,西方画重写实:中西艺术风格对比
从《夜巡》到《格尔尼卡》:五幅画作见证的历史瞬间
云南省推进乳腺癌筛查项目,2025年目标覆盖50%适龄妇女
黄姚古镇元旦迎客:5A景区里的千年风韵与节日新体验
秋摄黄姚古镇:千年古建遇上金黄秋色,4处绝美机位详解
冬季补充维生素D,专家推荐晒太阳和补充剂双管齐下
黑巧克力是提升情绪的最佳零食,每天30克刚刚好
眼科疾患:视网膜裂孔的成因、症状与治疗
伏龙肝治疗肠胃病效果好,其实就是灶心土
中医治肺气肿,这三种药最常用!
第一次聊天女生说你好,高情商回复技巧大揭秘!
第14个全球老虎日 | 守护老虎 “王者”归来
从选材到调味:教你炒出完美番茄炒蛋
巨浪-3导弹:中国海基核力量的里程碑
初中数学动点问题解题技巧大揭秘
巨浪-3 vs 国际顶级导弹:谁才是真正的王者?