tensorflow - 如何在训练 TensorFlow Lite 模型时删除数据集中可能导致错误的元素
问题描述
我正在尝试使用 TensorFlow Lite 训练一个简单的图像分类模型。我正在按照这个文档编写我的代码。如文档中所述,为了训练我的模型,我编写了model = image_classifier.create(train_data, model_spec=model_spec.get('mobilenet_v2'), validation_data=validation_data)
. 然而,经过几秒钟的训练,我得到了一个InvalidArgumentError
. 我相信错误是由于我的数据集中的某些东西造成的,但是手动从数据集中消除所有错误来源太困难了,因为它由数千张图像组成。经过一番研究,我找到了一个潜在的解决方案——我可以使用tf.data.experimental.ignore_errors
它“生成一个包含与输入相同元素的数据集,但默默地删除任何导致错误的元素”。但是,从文档中(这里) 我不知道如何将此转换功能与我的代码集成。如果我dataset = dataset.apply(tf.data.experimental.ignore_errors())
在训练模型之前放置线,系统不知道要删除哪些元素。如果我把这条线放在后面,系统永远不会到达这条线,因为训练中会出现错误。此外,系统会给出错误消息AttributeError: 'ImageClassifierDataLoader' object has no attribute 'apply'
。如果有人能告诉我如何tf.data.experimental.ignore_errors()
与我的模型或我面临的问题的可能替代方案集成,我将不胜感激。
解决方案
嗨,如果您完全遵循文档,那么
tf.data.experimental.ignore_errors
您将无法使用,因为您没有使用 tf.data 加载数据,您很可能正在使用from tflite_model_maker.image_classifier import DataLoader
.
注意:请提及完整的代码片段以帮助您解决问题
推荐阅读
- python - Pytest mocker patch Attribute:Error 'function' object has no attribute 'patch'
- reactjs - 为什么 cy.wait 在第一次加载时不起作用?
- bash - 如何删除Makefile中除目录之外的所有内容?
- php - 正则表达式捕获不需要的左侧字符
- javascript - 我想知道以下代码的功能是什么
- swift - 不能向内容视图添加多个元素
- jenkins - 在 Jenkins 的多个节点上运行同一阶段
- botframework - BotBuilder 类型错误:无法读取未定义的属性“侦听”
- c# - 列表
从方法参数返回 0 作为 C# MVC ActionResult 中的默认第一个值 - flutter - 防止小部件树获得焦点