nn.MM
需要一个将相乘的矩阵的表参数。在我的例子中,其中一个矩阵是一些先前定义的模型(例如nn.Sequential
)的输出,另一个只是一个常量矩阵。 如何将常量注入nn
的管道中,如果我这样做,我应该担心优化器会开始更改它吗?
我知道我可以通过以下方式解决注射问题:
- 写我自己的
nn.Module
.这似乎很严厉。 - 将模型分成两部分并手动注入常量。我真的希望模型只是一些
nn.Module
子类,它被:forward(input)
调用,并允许消费者幸福地不知道常量的存在。 - 使用
nn.ParallelTable
,但这也会将常量暴露给模型消费者。 - 使用无偏差的
nn.Linear
并覆盖权重。我只是不确定如何阻止优化器执行更新。
您可以创建一个 nn。线性和覆盖 :accGradParameters 为无操作函数
m = nn.Linear(100,200)
-- copy your weights / bias into m.weight / m.bias
m.accGradParameters = function() end
-- m is a constant multiplier thing
使用 MulConstant
m=nn.MulConstant(7,true)(myMatrix)