添加新图层错误消息:添加的图层必须是类 Layer 的实例

问题描述 投票:0回答:1

我尝试向模型添加新图层,但收到错误消息

TypeError: The added layer must be an instance of class Layer. Found: <class '__main__.New_Layer'>

几乎回答说所有层都应该是“tf.keras”或“keras”

但我将“tf.keras.layers.Layer”添加到 New_Layer 但不起作用。

在添加New_Layer之前,该模型可以正常执行。

这是我的代码

#InceptionResNetV2
conv_base = tf.keras.applications.InceptionResNetV2(weights=None,include_top=False , input_shape=(299,299,3))
conv_base.trainable = True
for layers in conv_base.layers[:-20]:
    conv_base.trainable = False
    
    
class New_Layer(tf.keras.layers.Layer):
    def __init__(self, context,  **kwargs):
        super(New_Layer, self).__init__(**kwargs)
        self.context = context
        
    def call(self, inputs):
        feature_map = inputs
        #get current file name and load new 
        file_name = self.context.get('file_name')
        print(file_name)
        new_image = 
        return tf.concat([feature_map, new_image], axis=-1)


model = tf.keras.Sequential()
model.add(conv_base)
model.add(tf.keras.layers.GlobalAveragePooling2D())
model.add(New_Layer)
model.add(tf.keras.layers.Dense(7,activation='softmax')) 
model.summary()

model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
python tensorflow keras deep-learning neural-network
1个回答
0
投票

参考tensorflow指南:

model.add(New_Layer(context = ...))

© www.soinside.com 2019 - 2024. All rights reserved.