23、使用卷积实现泛化:卷积神经网络的构建与训练

使用卷积实现泛化:卷积神经网络的构建与训练

1. 卷积网络参数与功能API

在构建神经网络模型时,我们可以通过 parameters() 方法深入访问模型中所有子模块的参数。例如:

model = Net()
numel_list = [p.numel() for p in model.parameters()]
sum(numel_list), numel_list

这里, parameters() 会递归调用所有子模块的 parameters() 方法,无论子模块嵌套多深, nn.Module 都能访问所有子参数列表。通过访问 grad 属性(由自动求导填充),优化器就能知道如何改变参数以最小化损失。

回顾 Net 类的实现,我们发现像 nn.Tanh nn.MaxPool2d 这类无参数的子模块,在构造函数中注册它们显得有些多余。实际上,我们可以在 forward 函数中直接调用它们的功能对应项。

PyTorch为每个 nn 模块都提供了功能对应项,这些功能函数“无内部状态”,其输出值完全由输入参数决定。例如, nn.Linear 的功能对应项是 nn.functional.linear ,其签名为

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值