import torch.nn as nn
import torch
class TwoLayerNet(nn.Module):
def __init__(self, dim_in, dim_hide, dim_out):
super(TwoLayerNet, self).__init__()
self.linear1 = nn.Linear(dim_in, dim_hide, bias=False)
self.linear2 = nn.Linear(dim_hide, dim_out, bias=False)
def forward(self, x):
y_predict = self.linear2(self.linear1(x).clamp(min=0))
return y_predict
if __name__ == "__main__":
N = 64 # batch size
D_in = 1000 # 输入64 x 1000维
H = 100 # 100个隐藏单元
D_out = 10 # 输出100维
# 创建训练数据,这里是对训练数据进行随机初始化
x_data = torch.randn(N, D_in)
y = torch.randn(N, D_out)
model = TwoLayerNet(D_in, H, D_out) # 模型
loss_fn = nn.MSELoss(reduction='sum') # 损失函数
optimizer = torch.optim.Adam(model.parameters(), lr=1e-4) # 优化器
for t in range(500):
y_pred = model(x_data) # 前向传播
loss = loss_fn(y_pred, y) # 计算损失
print(t, loss.item()) # 打印
optimizer.zero_grad() # 把模型内参数的梯度清零
loss.backward() # 反向传播
optimizer.step() # 更新权重
Pytorch训练神经网络Demo
最新推荐文章于 2024-12-28 15:38:28 发布
这段代码展示了如何用PyTorch构建一个简单的两层神经网络,并进行训练。模型包括两个全连接层,使用ReLU激活函数且不包含偏置。训练过程中采用Adam优化器和MSELoss函数,迭代500次,打印每次的损失值。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
GPT-oss:20b
图文对话
Gpt-oss
GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景
6136

被折叠的 条评论
为什么被折叠?



