我有100张图像,我使用Pytorch函数RandomHorizontalFlip和RandomVerticalFlip以概率1应用了水平和垂直增强。在此之后,我的图像总数将是300或其他?
RandomHorizontalFlip
RandomVerticalFlip
xtfmy6hx1#
你可以得到300张图片,如果你保持原来的100张图片,然后分别调用和存储两个函数的返回,例如:
from torchvision import transforms import torch trhf = transforms.RandomHorizontalFlip(p=1.) trvf = transforms.RandomVerticalFlip(p=1.) imgs = torch.rand(100, 3, 28, 28) imgs_hf = trhf(imgs) imgs_vf = trvf(imgs) all_imgs = torch.cat((imgs, imgs_hf, imgs_vf), 0) all_imgs.size()
字符串输出:
imgs_hf size: torch.Size([100, 3, 28, 28]), imgs_vf size: torch.Size([100, 3, 28, 28]), all_imgs size: torch.Size([300, 3, 28, 28])
型但是如果你在这两个函数上使用transforms.Compose或torch.nn.Sequential,那么它只会返回相同大小的图像(即100)。
transforms.Compose
torch.nn.Sequential
xtfmy6hx2#
上面的插图是精确的。[显示是否要增加数据集大小]但当您使用transforms.Compose函数时,它会在运行时增加图像并在操作后转储它们。这是因为存储冗余数据仅仅是存储开销。
2条答案
按热度按时间xtfmy6hx1#
你可以得到300张图片,如果你保持原来的100张图片,然后分别调用和存储两个函数的返回,例如:
字符串
输出:
型
但是如果你在这两个函数上使用
transforms.Compose
或torch.nn.Sequential
,那么它只会返回相同大小的图像(即100)。xtfmy6hx2#
上面的插图是精确的。[显示是否要增加数据集大小]但当您使用
transforms.Compose
函数时,它会在运行时增加图像并在操作后转储它们。这是因为存储冗余数据仅仅是存储开销。