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

 

model.modules()和model.children()均为迭代器,model.modules()会遍历model中所有的子层,而model.children()仅会遍历当前层。

使用:

for key in model.modules():
    print(key)
# 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()会遍历所有层

reference: https://discuss.pytorch.org/t/module-children-vs-module-modules/4551

你可能感兴趣的:(pytorch)