使用pytorch时使用for循环在python中创建self属性

在 pytorch 中,创建层可以是半自动化的,这就是使用 for 循环的原因。


主要问题之一是这些层不能存储在列表或字典中,否则反向传播将不起作用。


因此,解决问题的原因。


在对象内,分配新self属性


我该如何替换这个


self.res1 = 1

self.res2 = 2

self.res3 = 3

有了这个


for i in range(2):

  res_name = 'res'+str(i+1)

  self.res_name = i

既然我已经以这种方式创建了对象,我该如何以同样的方式访问它们。例如,如果我们假设 self.res_name 现在是一个对象?


for i in range(2):

   res_name = 'res'+str(i+1)

   out = self.res_name(out)


婷婷同学_
浏览 226回答 1
1回答

江户川乱折腾

您可能应该使用dictorlist代替。但如果你出于某种原因真的想要这个,你可以试试setattr(x, attr, 'magic').因此,在你的情况下,它是for i in range(1, 4):    res_name = 'res' + str(i)    setattr(self, res_name, i)有关更多信息,请参阅此相关问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python