我在我自己的数据集上遵循这个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-role来访问存储桶,存储桶的名称中有'sagemaker‘。当我最终运行该脚本时(与本教程中几乎相同,我只需要一个与profile_name的会话就可以访问Sagemaker),它给出了上面的错误,并以一个失败的作业状态结束。我在这个问题上找不到任何解决方案。欢迎所有的想法。
提前谢谢。
发布于 2019-11-27 22:35:33
如果代码与教程几乎相同,这是可能的;这是由于图像文件的原因。
尝试检查JPG文件压缩和通道的完整性。
由于某些原因,imread正在读取您的文件中“空白”/(空)的通道。
编辑:
如果在检查后,格式图像没有问题,请尝试检查*.lst文件上的路径:(train_lst and validation_lst),指向不存在的数据的错误路径通常会导致此类错误。
发布于 2020-08-31 22:07:20
请尝试验证*.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文件中,将class_dog类目录中名为train_image_dog1.jpg的单个文件的相对路径指定为class_dog/train_image_dog1.jpg。
您还可以将所有图像文件存储在train目录内的一个子目录下。在这种情况下,请使用子目录作为相对路径。例如,s3://<your_bucket>/train/your_image_directory。
https://stackoverflow.com/questions/58992679
复制相似问题