Neural network 从Python Theano+;凯拉斯

Neural network 从Python Theano+;凯拉斯,neural-network,theano,Neural Network,Theano,假设我有两类问题的简单MLP网络: model = Sequential() model.add(Dense(2, 10, init='uniform')) model.add(Activation('tanh')) model.add(Dense(10, 10, init='uniform')) model.add(Activation('tanh')) model.add(Dense(10, 2, init='uniform')) model.add(Activation('softmax'

假设我有两类问题的简单MLP网络:

model = Sequential()
model.add(Dense(2, 10, init='uniform'))
model.add(Activation('tanh'))
model.add(Dense(10, 10, init='uniform'))
model.add(Activation('tanh'))
model.add(Dense(10, 2, init='uniform'))
model.add(Activation('softmax'))
在训练这个网络之后,当在调试模式下观察到W对象时,我无法看到它的任何值

它们是否存储在Theano的计算图中,如果是,是否有可能获取它们?如果不是,为什么模型激活层中的所有值都是无

更新:

对不起,太快了。可以很好地找到具有稠密层权重的张量对象。但援引:

model.layers[1]
给我激活层。我想在哪里看到激活级别。相反,我只看到:

beta = 0.1
nb_input = 1
nb_output = 1
params = []
targets = 0
updates = []
我假设keras只是在模型评估后清除了所有这些值——这是真的吗?
如果是这样的话,记录神经元激活的唯一方法就是创建自定义激活层来记录所需的信息,对吗

我不熟悉Keras,但如果它正在构建一个传统的Theano神经网络计算图,那么就不可能按照您建议的方式查看激活值

传统上,只有权重作为共享变量持久存储。在Theano计算的中间阶段计算的值是瞬态的,只能通过调试编译后的Theano函数的执行来查看(请注意,这并不容易——调试宿主Python应用程序是不够的)


如果您直接构建计算而不是使用Keras,我建议您在Theano函数的输出值列表中包含您感兴趣的中间激活值。我无法评论如何通过Keras实现这一点。

我不熟悉Keras,但如果它正在构建传统的Theano神经网络计算图,则不可能以您建议的方式查看激活值

传统上,只有权重作为共享变量持久存储。在Theano计算的中间阶段计算的值是瞬态的,只能通过调试编译后的Theano函数的执行来查看(请注意,这并不容易——调试宿主Python应用程序是不够的)

如果您直接构建计算而不是使用Keras,我建议您在Theano函数的输出值列表中包含您感兴趣的中间激活值。我无法评论如何通过Keras实现这一点