Customer Error: imread read blank (None) image for file- Sagemaker AWS

Customer Error: imread read blank (None) image for file- Sagemaker AWS

我正在关注此 tutorial 以及我的自定义数据和训练和验证数据所在的自定义 S3 存储桶。我收到以下错误:

Customer Error: imread read blank (None) image for file: /opt/ml/input/data/train/s3://image-classification/image_classification_model_data/train/img-001.png

我所有的训练数据都在一个名为“train”的文件夹中

22  1   s3://image-classification/image_classification_model_data/train/img-001.png
86  0   s3://image-classification/image_classification_model_data/train/img-002.png
...

我的其他配置:

s3_bucket = 'image-classification'
prefix =  'image_classification_model_data'


s3train = 's3://{}/{}/train/'.format(s3_bucket, prefix)
s3validation = 's3://{}/{}/validation/'.format(s3_bucket, prefix)

s3train_lst = 's3://{}/{}/train_lst/'.format(s3_bucket, prefix)
s3validation_lst = 's3://{}/{}/validation_lst/'.format(s3_bucket, prefix)



train_data = sagemaker.inputs.TrainingInput(s3train, distribution='FullyReplicated', 
                        content_type='application/x-image', s3_data_type='S3Prefix')

validation_data = sagemaker.inputs.TrainingInput(s3validation, distribution='FullyReplicated', 
                             content_type='application/x-image', s3_data_type='S3Prefix')

train_data_lst = sagemaker.inputs.TrainingInput(s3train_lst, distribution='FullyReplicated', 
                        content_type='application/x-image', s3_data_type='S3Prefix')

validation_data_lst = sagemaker.inputs.TrainingInput(s3validation_lst, distribution='FullyReplicated', 
                             content_type='application/x-image', s3_data_type='S3Prefix')


data_channels = {'train': train_data, 'validation': validation_data, 'train_lst': train_data_lst, 
                 'validation_lst': validation_data_lst}

我检查了下载的图像并进行了物理检查,我看到了图像。现在确定这个错误被抛出为 blank。任何建议都会很棒。

Sagemaker 将您在 s3train 中指定的输入数据复制到 /opt/ml/input/data/train/ 中的实例中,这就是您出现错误的原因,因为正如您从错误消息中看到的那样,它正在尝试连接文件名在 lst 文件中,包含它期望图像所在的路径。因此,只需将文件名放在 lst 中就可以了(删除 s3 路径)。