TypeError:对象dtype('O')没有本地HDF5等价项

2024-06-28 11:30:03 发布

您现在位置:Python中文网/ 问答频道 /正文

获取

TypeError: Object dtype dtype('O') has no native HDF5 equivalent

保存h5py文件时的消息
尝试将(10,3224224)掩码文件保存到h5py文件
但不确定错误的含义

def make_masks(trainloader,cam_dict):
    masks=[]
    print('start->', masks)
    for idx, (img, target) in enumerate(trainloader):
        if idx==10:
            datapath = './datab2/gradcam_masks.h5py'
            masks_tensor = np.asarray(masks)
            print('maksks->',masks_tensor.shape)
            with h5py.File(datapath, 'w') as hf:
                hf.create_dataset('saliencys', data=masks)

            break
        torch_img, normed_torch_img = normalize_image(img.cuda())

        for gradcam, gradcam_pp in cam_dict.values():
            mask, _ = gradcam(normed_torch_img)
            # print('mask->',mask.shape)
            # mask = cv2.resize(mask[0], (224, 224))
            mask = mask.squeeze()
            # print('mask->',mask)
            heatmap, result = visualize_cam(mask, torch_img)
            # print('heatpmap->',heatmap.shape,'result->',result.shape)
            # images.append(torch.stack([torch_img.squeeze().cpu(), heatmap, result], 0))
            img = img.squeeze()
            img = (img).permute(1, 2, 0)
            print(mask.shape)
            masks.append(mask)
        if idx % 10000 == 0: print(idx, '/', trainloader.dataset.data.shape[0], '%')

Tags: 文件imgmasktorchresultprintshapemasks