获取中间层的输出

ref

  1. 要获取中间层的输出,最好的办法是新建一个模型
from keras.models import Model
model = ...  #原始model
layer_name = "my_layer"
intermediate_layer_model = Model(inputs=model.input, outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)


####or
    base_model = load_model(model_path)
    base_model.layers.pop()
    pre = Dense(units=num_label,activation='softmax')(base_model.layers[-1].output)
    model = Model(base_model.input,pre)
  1. 或者使用keras function来实现返回一个特定的输出
from keras import backend as K
get_3rd_layer_output = K.function([model.layers[0].input, model.layers[3].output])
layer_output = get_3rd_layer_output([x])[0]
  1. 固定特定层权重freeze weights
base_model = InceptionV3(weights='imagenet', include_top=False) 
for layer in base_model.layers:  
    layer.trainable = False

或者比如指定前3层不训练

for layer in base_model.layers[:3]:  
   layer.trainable = False
  1. 使用pop方法来删除最后一层
model = Sequential()
model.add(Dense(32, activation="relu", input_dim=784))
model.add(Dense(32, activation="relu"))
print(len(model.layers)) #输出2
model.pop()
print(len(model.layers))  #输出1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Keras 源码分析 此文档中,凡代码里用pass,均系省略源码以便阅读,起“本枝百世”之用。此注明者,乃pass...
    yangminz阅读 32,013评论 5 34
  • //Clojure入门教程: Clojure – Functional Programming for the J...
    葡萄喃喃呓语阅读 4,122评论 0 7
  • 从这篇开始介绍Keras的Layers,就是构成网络的每一层。Keras实现了很多层,包括核心层、卷基层、RNN网...
    readilen阅读 2,175评论 1 3
  • 女士品茶是一本统计学入门读物。它描述了统计学研究的历史,统计学思想和方法如何进入科学工作思想。统计学思想如何改变人...
    JJ2222阅读 1,372评论 0 0
  • 进入高中,老师要求每个人都定下自己的高考目标。我不知道自己想要的到底是什么,我只是隐隐约约地知道我想当涉外律师,只...
    红yu白阅读 871评论 3 1

友情链接更多精彩内容