是否可以通过Model Sub classing API在Tensorflow 2.0中保存Keras模型构建?

完成培训后,是否可以使用tf.keras模型子类化API保存整个模型构建?我知道我们只能使用save_weights来保存权重,但是有没有一种方法可以保存整个模型,以便以后在没有可用代码时可以将其用于预测?

class MyModel(tf.keras.Model):

def __init__(self,num_classes=10):
    super(MyModel,self).__init__(name='my_model')
    self.num_classes = num_classes
    # Define your layers here.
    self.dense_1 = layers.Dense(32,activation='relu')
    self.dense_2 = layers.Dense(num_classes,activation='sigmoid')

def call(self,inputs):
    # Define your forward pass here,# using layers you previously defined (in `__init__`).
    x = self.dense_1(inputs)
    return self.dense_2(x)

model = MyModel(num_classes=10)

# The compile step specifies the training configuration.
model.compile(optimizer=tf.keras.optimizers.RMSprop(0.001),loss='categorical_crossentropy',metrics=['accuracy'])


model.fit(data,labels,batch_size=32,epochs=5)
drtom 回答:是否可以通过Model Sub classing API在Tensorflow 2.0中保存Keras模型构建?

您可以按照以下步骤在训练,加载和推断后保存模型:

训练后保存模型

model.save(filepath="model")
# OR
tf.keras.models.save_model(model,filepath="model_")

加载保存的模型

loaded_model = tf.keras.models.load_model(filepath="model_")

使用加载的模型进行预测

result = loaded_model.predict(test_db)
本文链接:https://www.f2er.com/3032005.html

大家都在问