nn.ModuleList()与nn.Sequential()

nn.Sequential用法
将多个模块进行封装

layer = nn.Sequential(nn.Conv2d(in_channels=128, out_channels=64,kernel_size)       

nn.Sequential内部实现了forward功能,可以直接调用
例如:

x = torch.randn(16, 128, 20, 20)
output = layer(x)

nn.ModuleList,它是一个储存不同 module,并自动将每个 module 的 parameters 添加到网络之中的容器。你可以把任意 nn.Module 的子类 (比如 nn.Conv2d, nn.Linear 之类的) 加到这个 list 里面,方法和 Python 自带的 list 一样,无非是 extend,append 等操作。但不同于一般的 list,加入到 nn.ModuleList 里面的 module 是会自动注册到整个网络上的,同时 module 的 parameters 也会自动添加到整个网络中。

layer = nn.ModuleList([nn.Conv2d(in_channels=128, out_channels=64,kernel_size])

nn.ModuleList内部没有forword功能
例如:

报错
x = torch.randn(16, 128, 20, 20)
output = layer(x)
正确
x= torch.randn(16, 128, 20, 20)
for module in layer:
    x= module(x)
posted @   Guang'Jun  阅读(2390)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
主题色彩
主题色彩