简而言之,就是如果的nn.module类里面的,建议用add_module;其他用setattr。
作用和区别
setattr和add_module都是将一个量,用设置字符串当这个变量名字的方式,赋给一个类。但是如果没有严格按照pytorch定义的方式,那么setattr很可能不会把这个量当成pytorch类的参数赋给这个类参与深度学习的训练。比如:
convs = []
convs.append(conv)
setattr(self, "convs", convs)
或者
self.convs =