本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模型训练问题排查
清单文件或训练图像存在的问题可能会导致模型训练失败。在重新训练模型之前,请检查以下潜在问题。
异常标签颜色与掩码图像中异常的颜色不匹配
如果要训练图像分割模型,则清单文件中异常标签的颜色必须与掩码图像中的颜色相匹配。清单文件中图像的JSON行包含元数据 (internal-color-map
),用于告诉 Amazon Lookout for Vision 哪种颜色对应于异常标签。例如,下一JSON行中scratch
异常标签的颜色为#2ca02c
。
{ "source-ref": "s3://
path-to-image
", "anomaly-label
": 1, "anomaly-label
-metadata": { "class-name": "anomaly
", "creation-date": "2021-10-12T14:16:45.668
", "human-annotated": "yes
", "job-name": "labeling-job/classification-job
", "type": "groundtruth/image-classification", "confidence":1
}, "anomaly-mask
-ref": "s3://path-to-image
", "anomaly-mask
-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "hex-color": "#ffffff", "confidence": 0.0 }, "1
": { "class-name": "scratch
", "hex-color": "#2ca02c
", "confidence":0.0
}, "2
": { "class-name": "dent
", "hex-color": "#1f77b4
", "confidence":0.0
} }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes
", "creation-date": "2021-11-23T20:31:57.758889
", "job-name": "labeling-job/segmentation-job
" } }
如果掩码图像中的颜色与 hex-color
中的值不匹配,则训练会失败,您需要更新清单文件。
更新清单文件中的颜色值
-
使用文本编辑器,打开用于创建数据集的清单文件。
-
对于每JSON行(图像),检查
internal-color-map
字段内的颜色(hex-color
)是否与蒙版图像中异常标签的颜色相匹配。您可以从
字段中获取掩码图像的位置。将图像下载到您的计算机,然后使用以下代码获取图像中的颜色。anomaly-mask
-reffrom PIL import Image img = Image.open('
path to local copy of mask file
') colors = img.convert('RGB').getcolors() #this converts the mode to RGB for color in colors: print('#%02x%02x%02x' % color[1]) -
对于每张颜色分配不正确的图像,请更新该图像JSON行中的
hex-color
字段。 -
保存更新后的清单文件。
-
从项目中删除现有数据集。
-
使用更新后的清单文件,在项目中创建新数据集。
-
训练模型。
或者,对于步骤 5 和 6,您可以通过调用UpdateDatasetEntries操作并为要更新的图像提供更新的JSON行来更新数据集中的单个图像。有关代码示例,请参阅 添加更多图像 (SDK)。
蒙版图像不是PNG格式化的
如果您正在训练图像分割模型,则掩模图像必须是PNG格式化的。如果您根据清单文件创建数据集,请确保您在中引用的掩码图像
是PNG格式。如果蒙版图像不是PNG格式化的,则需要将其转换为PNG格式。仅将图像文件的扩展名重命名为 anomaly-mask
-ref.png
是不够的。
你在 Amazon Lookout for Vision 控制台或使用 Ground Truth 任务创建 SageMaker 的蒙版图像是PNG以格式创建的。您不需要更改这些图像的格式。
更正清单文件中的非PNG格式掩码图像
分割或分类标签不准确或缺失
标签缺失或不准确可能会导致训练失败,或者创建性能不佳的模型。我们建议您标注数据集中的所有图像。如果您不标注所有图像,并且模型训练失败,或者您的模型性能不佳,请添加更多图像。
请检查以下事项:
-
如果要创建分割模型,则掩码必须紧密覆盖数据集图像上的异常。要检查数据集中的掩码,请在项目的数据集图库中查看图像。如有必要,请重绘图像掩码。有关更多信息,请参阅 分割图像(控制台)。
如果您选择不修复质量不佳或缺失的标签,我们建议您添加更多已标注的图像,或者从数据集中移除受影响的图像。您可以通过控制台或使用UpdateDatasetEntries操作添加更多内容。有关更多信息,请参阅 向您的数据集中添加图像。
如果您选择移除图像,则必须重新创建不含受影响图像的数据集,因为您无法从数据集中删除图像。有关更多信息,请参阅 从数据集中移除图像。