使用卷积实现泛化:卷积神经网络的构建与训练
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 ,其签名为
超级会员免费看
订阅专栏 解锁全文

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



