我的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)
...
这不理想。