PyTorch:将RGB图像张量分割为四个并集成到批处理数据加载中

时间:2019-12-19 22:49:29

标签: python deep-learning pytorch tensor image-preprocessing

我的FloatTensor为(3,768,768),我想将其拆分为四个,所以(4,3,384,384)(我不想调整图像的大小,因为数据完整性很重要)。我可以做的很详细:

    ...
    img = torch.FloatTensor(sc[str(s)][:3]) # Load in from HDF5 dataset (3,768,768)
    imq1 = img[:,0:384,0:384] # top left
    imq2 = img[:,384:768,0:384] # top right
    imq3 = img[:,0:384,384:768] # bottom left
    imq4 = img[:,384:768,384:768] # bottom right
    im_list = [imq1,imq2,imq3,imq4]

    im = torch.zeros((4,3,384,384))
    for i in range(4):
        im[i] = im_list[i]
    ...

但是,如果我在自定义数据加载器中执行此操作,则无法再正确实现批处理。如果我的批次大小为4,那么我的批次大小为(4,4,3,384,384)。如何针对批次执行图像张量的“滑动窗口”或“拆分”?

我当前的解决方法是使用1的批量大小实现以下目标:

    for (img, label) in enumerate(dataloader):
        img = img[0].to(device)
        ...

这不理想。

0 个答案:

没有答案