AWS Sagemaker ClientError:读取文件:/opt/ml/input/data/train/image_directory/key_of_first_image.jpg

时间:2019-11-22 10:51:22

标签: amazon-web-services amazon-sagemaker

我正在自己的数据集上跟踪此tutorial,该数据集位于S3上-图像文件和.lst文件。 S3-bucket的结构为:

s3://{bucket_name}/image-classification/train -> in here I have 2 'directories' with images of my 2 classes

s3://{bucket_name}/image-classification/train_lst

s3://{bucket_name}/image-classification/validation -> in here I have 2 'directories' with images of my 2 classes

s3://{bucket_name}/image-classification/validation_lst

我已经为Sagemaker设置了IAM角色以访问该存储桶,该存储桶的名称中带有“ sagemaker”。 当我最终运行脚本时(几乎与本教程中的操作相同,我只需要一个带有profile_name的会话即可访问Sagemaker),它给了我上面的错误,并以失败的工作状态结束。我找不到任何解决方案。欢迎所有想法。

谢谢。

2 个答案:

答案 0 :(得分:0)

如果代码与本教程几乎相同,则有可能;这是由于图像文件。
尝试检查JPG文件压缩和通道的完整性。
由于某种原因,imread正在读取文件上“空白” /(空)的频道。

编辑:

如果经过检查后,格式图像还是可以的,请尝试检查*.lst文件上的路径:(train_lst and validation_lst),指向不存在的数据的错误路径通常会导致此类错误。

答案 1 :(得分:0)

尝试验证*.lst文件路径,请按照此处https://docs.aws.amazon.com/sagemaker/latest/dg/image-classification.html的说明进行操作

例如,如果您的训练图像存储在s3://<your_bucket>/train/class_dogs3://<your_bucket>/train/class_cat等中,则将训练频道的路径指定为s3://<your_bucket>/train,这是顶级目录为您的数据。

.lst文件中,将train_image_dog1.jpg类目录中名为class_dog的单个文件的相对路径指定为class_dog/train_image_dog1.jpg

您还可以将所有图像文件存储在train目录内的一个子目录下。在这种情况下,请将该子目录用作相对路径。例如,s3://<your_bucket>/train/your_image_directory