0

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

但对于我的一生,我发誓我有 21 个标签和 21 个课程。

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

  1. 我有大量训练图像 (640,640)
  2. 我浏览了它们并使用 DataTurks 来注释数据。
  3. 从那里我创建了一组 PNG 掩码,其中我使用 255 作为空白空间,然后使用棕褐色Int作为相应的数字来制作一个 NP 数组,然后转换为 png。
  4. 然后我按照这个sagemaker 示例进行分段,它似乎在我运行之前有效ss_model.fit

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

跳出来的第一个错误是:

label maps not provided, using defaults.

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

该标签映射看起来像这样:要点(也许它失败了,因为它不是有效的 JSON,但是我正在复制另一个 sagemaker 示例如何使用它?)

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

现在可能是我的面具完全错了(我对 ML 还是很陌生),但它们看起来像这样,但 640x640:

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

其中 255 为空,2 为注释。

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

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

4

1 回答 1

1

——但对于我的一生,我发誓我有 21 个标签和 21 个课程。

如果您有 21 个类,则最大标签应该是 20 而不是 21,因此会引发错误。标签索引从 0 开始。可以在文档页面上找到相关说明。

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

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

于 2019-02-04T18:51:34.313 回答