Создавайте собственные атрибуты в python, используя цикл for при использовании pytorch - PullRequest
0 голосов
/ 05 октября 2019

Внутри 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)

1 Ответ

1 голос
/ 05 октября 2019

Вы, вероятно, должны использовать вместо dict или list. Но если вы действительно этого хотите по какой-то причине, вы можете попробовать setattr(x, attr, 'magic').

Таким образом, в вашем случае это

for i in range(1, 4):
    res_name = 'res' + str(i)
    setattr(self, res_name, i)

См. Этот связанный вопрос длябольше информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...