Tensorflow 在自定义模型中封装预构建模型
我试图创建一个mobilenetV2forCifar10模型类,方法是将一个预构建的MobilenetV2模型封装在自定义类中,并将该模型的输出张量命名为pooling和logits层:Tensorflow 在自定义模型中封装预构建模型,tensorflow,keras,tensorflow2.0,Tensorflow,Keras,Tensorflow2.0,我试图创建一个mobilenetV2forCifar10模型类,方法是将一个预构建的MobilenetV2模型封装在自定义类中,并将该模型的输出张量命名为pooling和logits层: class MobileNetV2ForCifar100(keras.Model): def __init__(self): super(MobileNetV2ForCifar100, self).__init__() # cifar100 is 32 by 32 by
class MobileNetV2ForCifar100(keras.Model):
def __init__(self):
super(MobileNetV2ForCifar100, self).__init__()
# cifar100 is 32 by 32 by 3
self.base_model = keras.applications.MobileNetV2(input_shape=(32, 32, 3), include_top=False)
self.pooling_layer = keras.layers.GlobalAveragePooling2D()
self.logits_layer = keras.layers.Dense(100)
def call(self, inputs, training=None, mask=None):
self.base_model.input(inputs)
x = self.base_model.output
x = self.pooling_layer(x)
x = self.logits_layer(x)
return x
但是得到
AttributeError:该层从未被调用,因此没有定义的输入形状
尝试创建模型并获取输入形状时。这里出了什么问题?
同样,以这种方式将函数API与OOP混合似乎是错误的,有没有更好的方法来扩展现有模型