访问火炬神经网络的内部神经元

时间:2016-10-06 20:27:15

标签: lua neural-network torch luajit

在火炬中访问神经网络内部神经元的简单方法是什么?

我使用nn torch7库训练了一个多层神经网络。我想看一些输入转发到网络时某些特定内部神经元的输出值是什么,或者手动更改输出。

这些可能吗?如果是这样,对于已经过培训和保存的网络,是否是简单的解决方案?原因是我的神经网络是一个自动编码器,因此中间的神经元很重要 - 整个网络的输出。

1 个答案:

答案 0 :(得分:2)

如果您的神经网络被称为nnet且感兴趣的层是middle_module,那么请执行以下操作:

middle_module = nn.Linear(...)
nnet = nn.Sequential(...)
nnet:forward(your_data)
local hidden_output = middle_module.output

始终保存nn模块的output实例变量。这是由于反向传播的实现细节。

编辑:我意识到你在询问已经保存的模型。如果您知道感兴趣的模块的索引,则可以使用nn.Sequential.get