Код: Выделить всё
nn.ModuleList
Я работаю с pytorch ModuleList, как описано ниже,
Код: Выделить всё
decision_modules = nn.ModuleList([nn.Linear(768, 768) for i in range(10)])
Теперь для каждой точки входных данных в Minibatch 32 datapoints, мы Хотите выбрать 4 модули принятия решений из списка Decision_modules . 4 Двигатели принятия решений из Deciess_Engine выбираются с использованием указанного списка, как описано ниже. MATRIX IND имеет измерение TORCH.Randint (0,10, (4,4)) .
Я хочу нам решение без использования петлей Поскольку петли значительно замедляют XECUTION. < /p>
Но следующий код бросает и ошибку.
Код: Выделить всё
import torch
import torch.nn as nn
linears = nn.ModuleList([nn.Linear(768, 768) for i in range(10)])
ind=torch.randint(0,10,(4,4))
input=torch.rand(32,768)
out=linears[ind](input)
Файл ~\AppData\Local\Programs\Python\Python312\Lib\site -packages\torch\nn\modules\container.py:334, в ModuleList.getitem(self, idx)
332 return self.класс(list(self._modules.values())[idx])
333 else:
--> 334 return self._modules[self._get_abs_string_index(idx )]
Файл ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\nn\modules\container.py:314, в ModuleList._get_abs_string_index(self, idx)
312 def _get_abs_string_index(self, idx) ):
313 """Получить абсолютный индекс списка модулей."""
--> 314 idx = оператор.index(idx)
315 если нет (-len(self)
Любая помощь будет очень полезна.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ules-of-nn