當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch TenCrop用法及代碼示例


本文簡要介紹python語言中 torchvision.transforms.TenCrop 的用法。

用法:

class torchvision.transforms.TenCrop(size, vertical_flip=False)

參數

  • size(序列或者int) -裁剪所需的輸出大小。如果 size 是 int 而不是像 (h, w) 這樣的序列,則會進行方形裁剪 (size, size)。如果提供長度為 1 的序列,它將被解釋為 (size[0], size[0])。

  • vertical_flip(bool) -使用垂直翻轉而不是水平翻轉

將給定的圖像裁剪成四個角,中央裁剪加上這些的翻轉版本(默認使用水平翻轉)。如果圖像是 Torch Tensor,它應該具有 […, H, W] 形狀,其中… 表示任意數量的前導維度

注意

此轉換返回圖像元組,並且您的數據集返回的輸入和目標數量可能不匹配。有關如何處理此問題的示例,請參見下文。

示例

>>> transform = Compose([
>>>    TenCrop(size), # this is a list of PIL Images
>>>    Lambda(lambda crops: torch.stack([ToTensor()(crop) for crop in crops])) # returns a 4D tensor
>>> ])
>>> #In your test loop you can do the following:
>>> input, target = batch # input is a 5d tensor, target is 2d
>>> bs, ncrops, c, h, w = input.size()
>>> result = model(input.view(-1, c, h, w)) # fuse batch size and ncrops
>>> result_avg = result.view(bs, ncrops, -1).mean(1) # avg over crops

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torchvision.transforms.TenCrop。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。