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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现