首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras得到中间层的输出

Keras得到中间层的输出
EN

Stack Overflow用户
提问于 2017-03-21 05:57:46
回答 1查看 2.4K关注 0票数 2
代码语言:javascript
复制
## what my model looks like

# defining the model archictecture
model = Sequential()
# 1st conv layer
model.add(Conv2D(32, (5, 5), activation='relu', input_shape=x_ip_shape))
# 1st max pool
model.add(MaxPooling2D(pool_size=(2, 2)))
# 2nd conv layer
model.add(Conv2D(64, (7, 7), activation='relu'))
# 2nd max pool
model.add(MaxPooling2D(pool_size=(2, 2)))
# Flattenning the input
model.add(Flatten())
# 1st Fully connected layer
model.add(Dense(10, activation='relu'))
# Adding droput
model.add(Dropout(0.25))
# softmax layer
model.add(Dense(classes_out, activation='softmax'))

# defining loss, optimizer learning rate and metric
model.compile(loss='categorical_crossentropy',optimizer=keras.optimizers.Adam(1e-4), metrics=['accuracy'])


## prediction
scores = model.evaluate(test_x, test_labels, verbose=0)

问题:相反,我可以获得#1完全连接层的前传输出,即model.add(Dense(10, activation='relu'))

我在keras 常见问题上做了一个例子。但这让我困惑:在这个问题上:

代码语言:javascript
复制
get_3rd_layer_output = K.function([model.layers[0].input, K.learning_phase()], [model.layers[3].output])

在哪里传递输入数据?model.layers.input是什么意思?受过训练的模型是否存储输入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 07:33:31

get_3rd_layer_output是一个Theano函数。你不需要对它做很多修改。

如果您想要网络中第一层的输入(任何层的)输出,model.layers[0].input将保持原样。换句话说,如果您希望将某一层的输出作为第4层的输入,则应该将其更改为model.layers[4].input

K.learning_phase()指示您希望输出是在培训阶段还是在测试阶段。这两个层的输出之间会有一些差异,因为有一些层(如Dropout )在训练和测试期间的行为不同。如果希望输出类似于predict(),则需要传递零。

model.layers[3].output:这就是您需要修改的地方。找出要输出的层的索引。如果您有IDE (例如Pycharm),那么单击model变量并查看您的层的索引(记住它从零开始)。如果没有,为该层分配一些名称,然后您可以通过执行model.layers来查找所有的图层名称。从这里,您可以很容易地得到索引。例如,如果您想要从第10层输出,那么您可以将其更改为model.layers[10].output

怎么叫这个?

同样,这是一个Theano函数,所以是一个symolic函数。您必须传递值并对其进行评估。你这样做如下:

代码语言:javascript
复制
out = get_3rd_layer_output([X, 0])[0]  # test mode

记住,即使X是一个数据点,它的形状也应该是(1,) + x_ip_shape

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42919436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档