如何访问 torch 神经网络的内部神经元

有没有一种简单的方法可以访问 torch 神经网络的内部神经元?

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

这些是否可行?如果可行,是否有适用于已经训练好且已保存的网络的简单解决方案?原因是我的神经网络是自编码器,因此中间的神经元非常重要 - 相当于整个网络的输出。

点赞
用户3469721
用户3469721

如果您的神经网络命名为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

2016-10-07 00:49:05