Оптимизация PyTorch: возможно ли использование функции map в torch.tensor без повреждения вычислительных графов? - PullRequest
0 голосов
/ 06 января 2020

У меня есть несколько выходных тензоров в моей нейронной сети, и я хочу собрать их в один список в конце функции прямого распространения. По этой причине я использовал for l oop следующим образом:

output = []
append = output.append
for i in range(self.number):
            append(self.out[i](input))

, где self.out - это torch.nn.ModuleList из nn.Sequential слоев в качестве выходных данных модели, input - это ввод модели и self.number - количество выходов.

Я хочу оптимизировать это с помощью встроенного метода map следующим образом:

append = output.append
output = map(lambda x: self.out[x](input)), range(0,self.number))

С обеими функциями выходы одинаковы и учебные работы. Но map как-то не намного быстрее, чем for l oop для self.number = 6. Иногда даже медленнее.

1-Могут ли быть сделаны какие-то неправильные шаги, которые я нанесу, что вредит процессу (как повреждение графов) и избегает оптимизации?

2-Или мы не можем ожидать идеальных результатов от map для маленьких циклов?

3-Есть ли лучший способ оптимизировать for l oop без повреждения torch данные?

Заранее спасибо!

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