使用DSW训练模型读取数据集(.h5文件)报错errno 95

具体的报错信息如图:
image.png
我使用DataLoader载入数据集的代码如下:

"""MPIIFaceGaze.h5文件"""
class MPIIFaceGazeh5(Dataset):
    def __init__(self, person_id_str, dataset_path, transform):
        self.person_id_str = person_id_str
        self.dataset_path = dataset_path
        self.transform = transform

    def __getitem__(self, index):
        with h5py.File(self.dataset_path, 'r') as f:
            image = f.get(f'{self.person_id_str}/image/{index:04}')[()]
            gaze = f.get(f'{self.person_id_str}/gaze/{index:04}')[()]
            personid = np.array(int(self.person_id_str[1:]))  # int
        image = self.transform(image)
        gaze = torch.from_numpy(gaze)
        personid = torch.from_numpy(personid)

        return image, gaze, personid

    def __len__(self) -> int:
        return 3000

数据集文件MPIIFaceGaze.h5上传到OSS并在PAI创建了数据集,创建DSW实例的时候也挂载了这个数据集,但是代码运行时候就会报错。挂载的路径是/mnt/data。
在本地运行没有问题。

展开
收起
游客kqf44pfka37pw 2024-03-04 21:14:11 144 分享 版权
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据提供的信息,报错errno 95可能是由于文件路径错误或文件不存在导致的。请检查以下几点:

    1. 确保数据集文件(.h5文件)的路径正确,包括文件名和文件所在的目录。
    2. 确保数据集文件确实存在于指定的路径中。
    3. 检查代码中是否有其他错误,例如文件读取权限问题或其他文件操作错误。

    如果以上检查都没有问题,可以尝试以下解决方案:

    1. 使用绝对路径而不是相对路径来指定数据集文件的位置。
    2. 检查文件路径中的斜杠方向是否正确,确保使用正确的路径分隔符。
    3. 确保数据集文件没有被其他程序占用或锁定。
    4. 检查操作系统的文件系统权限,确保有足够的权限来读取数据集文件。
    2024-03-04 22:22:12
    赞同 3 展开评论

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

还有其他疑问?
咨询AI助理