【问题标题】:Access internal Neurons of a torch Neural Network访问 Torch 神经网络的内部神经元
【发布时间】:2017-02-15 17:38:41
【问题描述】:
在torch中访问神经网络内部神经元的简单方法是什么?
我已经使用 torch7 的 nn 库训练了一个多层神经网络。我想看看当某些输入被转发到网络时,某些特定内部神经元的输出值是多少,或者手动更改输出。
这些可能吗?如果是这样,对于已经训练和保存的网络是否有简单的解决方案?原因是我的神经网络是一个自动编码器,因此中间的神经元很重要——是整个网络的输出。
【问题讨论】:
标签:
lua
neural-network
torch
luajit
【解决方案1】:
如果你的神经网络叫做 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。