当前位置: 代码迷 >> 综合 >> Pytorch中的model.modules()和model.children()的区别
  详细解决方案

Pytorch中的model.modules()和model.children()的区别

热度:65   发布时间:2023-11-27 01:10:30.0

Pytorch中的model.modules()和model.children()的区别

背景:最近在做网络模型中可视化的过程中,需要将网络结构中的某一层的特征进行输出。所以就遇到了这个问题,小小记录一下。

重要点

首先,model.modules()和model.children()均是迭代器。前者会遍历model中所有子层,而后者仅会遍历当前层。【我认为这个用树的构造比较好理解】。

#针对[[1,2],3]的遍历结果
## 1、model.modules()是把网络结构中所有组成的可能性都进行输出
[[1,2],3], [1,2], 1, 2, 3
## 2、model.children()是把网络结构中除掉最外面一层的内容输出
[1,2], 3

故:children()是返回的最外层的元素 [每个元素只出现一次] ,modules()是返回的模型里的所有元素 [会出现重复元素] ,包括不同级别的子元素。

  相关解决方案