google-cloud-platform - Google Cloud Vision 不会自动分割图像以进行训练/测试
问题描述
很奇怪,出于某种原因,GCP Vision 不允许我训练我的模型。我已经满足每个标签至少 10 个图像,没有未标记的图像,并尝试上传指向 3 个此标签图像的 CSV 作为验证图像。但我收到此错误
您的某些标签(例如“Label1”)没有足够的图像分配给您的验证集。导入另一个 CSV 文件并将这些图像分配给这些集合。
任何想法,将不胜感激
解决方案
当您没有标记所有图像时,通常会发生此错误,因为 AutoML 将您的图像(包括错误标记的图像)划分为类别,并且当未标记的图像进入VALIDATION集时会触发此错误。
根据文档,建议每个标签 1000 张图像。但是,每个标签最少为 10 个图像,复杂情况下最少为 50 个。此外,
当最常见标签的图像最多比最不常见标签的图像多 100 倍时,该模型效果最佳。我们建议删除频率非常低的标签。
此外,AutoML Vision 将 80% 的内容文档用于训练,10% 用于验证,10% 用于测试。由于您的图像没有分为这三个类别,您应该手动将它们分配给TRAIN、VALIDATION和TEST。您可以通过将图像上传到 GCS 存储桶并引用.csv
文件中的每个标记图像来做到这一点,如下所示:
TRAIN, gs://my_bucket/image1.jpeg,cat
正如您在上面看到的,它遵循格式[SET],[GCS image path], [Label]
。请注意,您将手动划分数据集,它应该尊重已经提到的百分比。因此,您将在每个类别中拥有足够的数据。您可以在此处和此处按照准备训练数据的步骤进行操作。
注意:请注意,您的.csv
文件区分大小写。
最后,为了验证您的数据集并检查标记/未标记的图像,您可以导出创建的数据集并检查导出的.csv
文件。您可以按照文档中的说明进行操作。导出后,下载并验证每个SET(训练、验证和测试)。
推荐阅读
- xaml - ListView 无法滚动
- asp.net - 如何在同一 VM 主机上使用基于 Asp.Net 的网站托管多个 IIS docker 容器
- ruby-on-rails - Rails Bundle Install 使用 Docker 失败
- php - 从数组创建表
- netflix-zuul - 如何在一个网关应用中创建多个 Zuul 过滤器
- ios - 如何在 Main.storyboard 中引用的不同 Storyboard 中为导航控制器设置标签栏图标和标题?
- javapackager - 是否有项目支持使用 javapackager 进行跨平台构建
- ios - 将文件保存到 Google Drive 中的共享文件夹
- html - 验证简单的可选输入
- c# - 为什么执行 WCF(.svc) 服务后找不到端点