model.modules()和model.children()均为迭代器,model.modules()会遍历model中所有的子层,而model.children()仅会遍历当前层。
# model.modules()类似于 [[1, 2], 3],其遍历结果为: [[1, 2], 3], [1, 2], 1, 2, 3 # model.children()类似于 [[1, 2], 3],其遍历结果为: [1, 2], 3
用model.children()进行初始化参数时,可能会漏掉部分,用model.modules()会遍历所有层
参考链接:https://discuss.pytorch.org/t/module-children-vs-module-modules/4551