Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 如何访问包含预训练模型的自定义模型的即时激活?_Keras_Output_Layer_Activation_Pre Trained Model - Fatal编程技术网

Keras 如何访问包含预训练模型的自定义模型的即时激活?

Keras 如何访问包含预训练模型的自定义模型的即时激活?,keras,output,layer,activation,pre-trained-model,Keras,Output,Layer,Activation,Pre Trained Model,我有一个自定义的Keras例外基础网络,添加了回归头: pretrained_model = tf.keras.applications.Xception(input_shape=[244, 244, 3], include_top=False, weights='imagenet') pretrained_model.trainable = True model = tf.keras.Sequential([ pretrained_model, tf.keras.layer

我有一个自定义的Keras例外基础网络,添加了回归头:

pretrained_model = tf.keras.applications.Xception(input_shape=[244, 244, 3], include_top=False, weights='imagenet')

pretrained_model.trainable = True

model = tf.keras.Sequential([
    pretrained_model,
    tf.keras.layers.GlobalAveragePooling2D(),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(32, activation='relu'),
    tf.keras.layers.Dropout(0.5),
    tf.keras.layers.Dense(1, activation='tanh')
])
模型摘要:

  Layer (type)                 Output Shape              Param #   
=================================================================
xception (Model)             (None, 7, 7, 2048)        20861480  
_________________________________________________________________
global_average_pooling2d_3 ( (None, 2048)              0         
_________________________________________________________________
dropout_4 (Dropout)          (None, 2048)              0         
_________________________________________________________________
dense_6 (Dense)              (None, 32)                65568     
_________________________________________________________________
dropout_5 (Dropout)          (None, 32)                0         
_________________________________________________________________
dense_7 (Dense)              (None, 1)                 33        
=================================================================
Total params: 20,927,081
Trainable params: 20,872,553
Non-trainable params: 54,528
我想从异常(模型)层获取最后的激活

例外情况的详细信息:

Model: "xception"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_4 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
block1_conv1 (Conv2D)           (None, 111, 111, 32) 864         input_4[0][0]                    
__________________________________________________________________________________________________

...  
__________________________________________________________________________________________________
block14_sepconv2 (SeparableConv (None, 7, 7, 2048)   3159552     block14_sepconv1_act[0][0]       
__________________________________________________________________________________________________
block14_sepconv2_bn (BatchNorma (None, 7, 7, 2048)   8192        block14_sepconv2[0][0]           
__________________________________________________________________________________________________
block14_sepconv2_act (Activatio (None, 7, 7, 2048)   0           block14_sepconv2_bn[0][0]        
==================================================================================================
Total params: 20,861,480
Trainable params: 20,806,952
Non-trainable params: 54,528
要引用最后一个激活层,我必须使用:

model.layers[0].get_layer('block14_sepconv2_act').output
因为我的“模型”不包含“block14\u sepconv2\u act”层


要访问激活,我想使用以下代码:

activations = tf.keras.Model(model.inputs,model.layers[0].get_layer('block14_sepconv2_act').output)
activations(sample)
但我得到了一个错误:

ValueError: Graph disconnected: cannot obtain value for tensor Tensor("input_4_1:0", shape=(None, 224, 224, 3), dtype=float32) at layer "input_4". The following previous layers were accessed without issue: []

我的问题是,如果以这种方式添加到自定义模型中,如何访问预训练模型的中间层输出