Keras获取中间层输出

其中,self里面有三个对象:keras compile出来的图,self.model。
model对应的图 self.graph,model所在的会话 self.session。

    def get_feature_map(self,X,layer_name='block1_conv1'):
        ''' 获取特定中间层的特征图

        :param X:           输入数据
        :param layer_name:  层的名字,str
        :return:
        '''
        with self.session.as_default():
            with self.graph.as_default():
                layer =   self.model.get_layer(layer_name)
                if layer != None:
                    value = layer.output
                    get_value= K.function(inputs=self.model.inputs,outputs=[value])
                    output = get_value([X])[0]
                    return  output
                else:
                    raise ValueError('Model{0} could not find layer named {1}.'.format(self.model_name,layer_name))

需要注意的是:这个过程会特别耗GPU存储,因此不要一次性喂太大的batch!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值