训练模型时出现报错:"h5py objects cannot be pickled"

这是因为在加载训练集时使用了多线程

解决方法:

修改原代码

train_loader = torch.utils.data.DataLoader(
        CaptionDataset(data_folder, data_name, 'TRAIN', transform=transforms.Compose([normalize])),
        batch_size=batch_size, shuffle=True, num_workers=workers, pin_memory=True)

train_loader = torch.utils.data.DataLoader(
        CaptionDataset(data_folder, data_name, 'TRAIN', transform=transforms.Compose([normalize])),
        batch_size=batch_size, shuffle=True, pin_memory=True)

删除num_workers属性后再次运行程序报错消失

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐