模型搭建和参数优化

本文介绍了使用PyTorch的torch.nn模块搭建神经网络,包括Sequential、Linear、ReLU等组件,以及MSELoss、L1Loss、CrossEntropyLoss等损失函数。接着讨论了torch.optim包,以Adam优化器为例,展示了自动化参数优化的过程,强调了优化方法对模型训练效果的重要性。
摘要由CSDN通过智能技术生成

1.torch.nn

上一篇中我们使用到了variable时,创建的类继承的就是nn中的module,torch.nn包提供了很多神经网络中具体功能相关的类,下面我们使用nn来简化之前的代码

刚开始的参数定义变化不大

import torch
from torch.autograd import Variable
batch_n=100
input_data=1000
hidden_layer=100
output_data=10

x=Variable(torch.randn(batch_n,input_data),requires_grad=False)
y=Variable(torch.randn(hidden_layer,output_data),requires_grad=False)

相比之下定义两层网络的代码被删减了,因为后面会自适应权重网络

model=torch.nn.Sequential(torch.nn.Linear(input_data,hidden_layer),torch.nn.ReLU(),torch.nn.Linear(hidden_layer,output_data))

在这里sequential里的内容就是我们搭建的网络结构,首先通过linear完成输入到隐藏层的线性变换,然后使用ReLU作为激活函数,再使用linear完成隐藏层到输出层的线性变换,其中:

1.1 sequential

torch.nn.Sequential是nn中的一种序列容器,通过在容器中嵌套具体功能的类实现模型网络的搭建,参数会按照我们定义好的序列自动传递下去,如果将容器中的各个部分看作不同的模块的话,这些模块可以自由组合,模块加入有两种方式,一种就是向上面的直接嵌套,另一种就是以orderdict有序字典的方式进行传入,第一种默认用从零开始的数字序列作为代号,而第二种每个模块有我们自己定义的名字


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值