是啥让我的模型在笔记本电脑和 colab 上运行时预测错误值?
Posted
技术标签:
【中文标题】是啥让我的模型在笔记本电脑和 colab 上运行时预测错误值?【英文标题】:What is making my model predicting the wrong value when running on my laptop and colab?是什么让我的模型在笔记本电脑和 colab 上运行时预测错误值? 【发布时间】:2022-01-19 06:06:55 【问题描述】:我已将 TF 模型导出为 .h5
格式,以便将其用于我的项目。在 Colab 上运行和测试时,它可以完美预测,但是当我尝试在我的机器(笔记本电脑)中预测 .h5
格式模型时,它没有预测到正确的模型,因此它不像以前在 Colab 中那样工作。我试图在网上浏览,但似乎没有找到答案或线索。有谁知道问题出在哪里?
示例
输入图片:golden_retriever
的狗类型
(COLAB) -> 预测golden_retriever
(正确)
model = tf.keras.models.load_model("model_mac.h5", custom_objects="KerasLayer": hub.KerasLayer)
custom_images_paths = ["golde.jpeg"]
custom_data = create_data_batches(custom_images_paths, test_data=True)
custom_preds = model.predict(custom_data)
custom_pred_labels = [get_pred_label(custom_preds[i]) for i in range(len(custom_preds))]
(我的机器/笔记本电脑) -> 预测 norwegian_elkhound
(其他看起来不像 golden_retriever
的东西。(错误)
model = tf.keras.models.load_model("model_mac.h5", custom_objects "KerasLayer":hub.KerasLayer)
img = "golde.jpeg"
custom_data = create_data_batches([img], test_data=True)
custom_preds = model.predict(custom_data)
custom_pred_labels = [get_pred_label(custom_preds[i]) for i in range(len(custom_preds))]
提前致谢。
【问题讨论】:
【参考方案1】:我会检查模型预测代码每一步的输出。
当您在数据集的测试拆分上调用 model.evaluate()
时,您是否能够验证您的模型获得相同的结果?
这是我首先要做的事情之一。
否则,您可能需要查看文档中处理保存到 .h5
的部分:https://www.tensorflow.org/tutorials/keras/save_and_load#hdf5_format
请参阅“保存自定义对象”部分,您是否在本地计算机上定义了 hub.KerasLayer
?也许这与它有关。
【讨论】:
您好丹尼尔,感谢您的帮助。我已经记录了预测自定义图像之前和之后的每一个操作。我还重新评估了测试数据集上的模型,没有任何问题发生,模型看起来很好,准确性很好,我还检查了您提供的.h5
格式文档,它仍然预测错误的输出。我尝试使用 SavedModel 格式,但它仍然预测错误的输出。以上是关于是啥让我的模型在笔记本电脑和 colab 上运行时预测错误值?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 google colab 让 Windows 10 笔记本电脑进入睡眠状态?
Jupyter笔记本电脑上谷歌Colaboratory的IOPub错误
没有填充或边距:是啥让我的表格无法获得 100% 的宽度? & 为啥当鼠标悬停在可滚动的 el 上时滚动条不随滚轮滚动?