我正在自己的数据集上跟踪此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),它给了我上面的错误,并以失败的工作状态结束。我找不到任何解决方案。欢迎所有想法。
谢谢。
答案 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_dog
,s3://<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
。