【发布时间】:2023-01-24 17:01:36
【问题描述】:
我正在研究 A_K_Nain 编写的 keras 示例中的 tensorflow ocr 模型。该模型使用自定义对象(CTC 层)。它在网站上:https://keras.io/examples/vision/captcha_ocr/ 我使用我的数据集训练模型,然后预测模型的结果是完美的。 我想保存并加载这个模型,我试过了。但是我遇到了一些错误,所以我在 CTC Layer 类中附加了这段代码。
def get_config(self):
config = super(CTCLayer, self).get_config()
config.update({"name":self.name})
return config
之后 我试图保存整个模型和重量,但没有任何效果。 所以我申请了2个保存点。 第一种方式。
history = model.fit(
train_dataset,
validation_data=validation_dataset,
epochs=70,
callbacks=[early_stopping],
)
model.save('./model/my_model')
---------------------------------------
new_model = load_model('./model/my_model', custom_objects={'CTCLayer':CTCLayer})
prediction_model = keras.models.Model(
new_model .get_layer(name='image').input, new_model .get_layer(name='dense2').output
)
和第二种方式。
prediction_model = keras.models.Model(
model.get_layer(name='image').input, model.get_layer(name='dense2').output
)
prediction_model.save('./model/my_model')
这些仍然没有用。它没有出错,但预测结果很糟糕。 当训练和保存和加载一起执行时,可以获得准确的结果。 如果我在没有一起训练的情况下加载相同的模型,结果会很糟糕。
我如何在每次不训练的情况下使用这个模型?请帮我。
【问题讨论】:
标签: python tensorflow keras ocr ctc