nn.MM
требует аргумент таблицы матриц, которые будут умножаться. В моем случае одной из матриц является выход некоторой ранее определенной модели (например, nn.Sequential
), а другой - только постоянная матрица. Как я могу вставить константу в конвейер nn
, и должен ли я беспокоиться, что оптимизатор начнет менять его, если я это сделаю?torch/nn: Каков канонический способ умножения на постоянную матрицу?
Я знаю, что я мог бы решить эту проблему путем инъекции:
- писать свой собственный
nn.Module
. Это кажется тяжелым. - Ломать модель на две части и вручную вводить константу. Я действительно хочу, чтобы модель была просто подклассом
nn.Module
, который вызывается с:forward(input)
и позволяет потребителям быть в блаженном неведении о существовании константы. - Использование
nn.ParallelTable
, но это также обеспечит постоянную модель потребителей. - Использование
nn.Linear
без смещения и перезаписи весов. Я просто не знаю, как предотвратить оптимизацию от обновления.
Это несколько удивительно, что обезьяна латание это даже работает с 'torch.save' и' torch.load'. Я возьму это. –