amazon-web-services - 在标签中找到注释值 21。这大于类(class)数量

标签 amazon-web-services machine-learning image-segmentation amazon-sagemaker semantic-segmentation

从该项目来看,这似乎是一个非常明显的问题,对吧?

但我发誓我一生有 21 个标签和 21 个类别。

所以,作为一个健全性检查,我想我会问!

  1. 我有大量训练图像 (640,640)
  2. 我已经仔细研究过它们并使用 DataTurks 来注释数据。
  3. 由此,我创建了一组 PNG 蒙版,其中我使用 255 作为空白区域,然后使用 tan Int对应的数字制作一个NP数组,然后转换为png。
  4. 然后我就关注了这个 sagemaker example for segmentation这似乎一直有效,直到我运行 ss_model.fit .

这是我开始遇到一些错误的地方。完整日志可以在 this Gist 中看到

第一个向我跳出的错误是:

label maps not provided, using defaults.

这很奇怪,因为我相信我已经在 S3 中正确加载了它们 <bucket>/label_map/train_label_map.json

该标签图如下所示:Gist (也许它会失败,因为它不是有效的 JSON,但我正在复制另一个 sagemaker 示例如何使用它?)

要跳出的第二个错误是标题中的错误。

现在,我的蒙版可能完全错误(我对 ML 还很陌生),但它们看起来像这样,但分辨率为 640x640:

[ 
   255, 255, 255
   255, 2, 2,
   255, 2, 2
]

其中 255 为空,2 为注释。

此错误可能是因为我没有包含 255: "null"在 label_map 中?

任何见解都会非常有帮助!谢谢。

最佳答案

-- 但我发誓我一生有 21 个标签和 21 个类别。

如果您有 21 个类,则最大标签应为 20 而不是 21,因此会引发错误。标签索引从 0 开始。相关注释可以在 documentation page 中找到。 。

从您对帖子的评论来看,如果您必须将类别数设置为 22,那么您似乎有 23 个类别。num_classes 仅适用于类别,不包括 255 或洞类。请注意,如果您提供 num_classes > 标签数量,该算法将不会出现错误。这是因为 num_classes 参数用于创建 softmax 层。如果您的 num_classes 多于实际看到的标签数量,则某些标签根本无法学习。

再深入一点,link that you shared 中的标签图是错的。标签映射仅接受整数而不接受字符串。它是一个 int-int 映射。 接下来,仅仅在 S3 存储桶中拥有 label_map 还不够,它需要在创建训练作业时作为算法的数据通道提供。

关于amazon-web-services - 在标签中找到注释值 21。这大于类(class)数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383228/

相关文章:

amazon-web-services - 将保留的 cloudformation 资源重新连接回 cloudformation 堆栈

amazon-web-services - 如何将非常大的文件上传到 S3?

python - 使用 gridsearchCV() 后没有得到更好的结果,而是手动得到更好的结果

matlab - Matlab 中的边界框(regionprops)

computer-vision - 在YOLACT/YOLACT++中获取预测输出掩码的多边形坐标

amazon-web-services - AWS ELB 从 FaSTLy 健康检查中获得大量 404 错误

amazon-web-services - 如何在同一个 VPC 中使用 terraform 配置两个 ECS 集群?

python - 使用 GroupKFold 和 sklearn 进行嵌套交叉验证

python - 如何将 pandas.core.series.Series 类型转换为二维数组?

python - 在包含数百张图像的数据集中比较和绘制相同颜色的区域