# Function Differences with torch.nn.Upsample ## torch.nn.Upsample ```python torch.nn.Upsample( size=None, scale_factor=None, mode='nearest', align_corners=None )(input) ``` For more information, see [torch.nn.Upsample](https://pytorch.org/docs/1.5.0/nn.html#torch.nn.Upsample). ## mindspore.nn.ResizeBilinear ```python class mindspore.nn.ResizeBilinear(half_pixel_centers=False)(x, size=None, scale_factor=None, align_corners=False) ``` For more information, see [mindspore.nn.ResizeBilinear](https://mindspore.cn/docs/en/r2.0.0-alpha/api_python/nn/mindspore.nn.ResizeBilinear.html#mindspore.nn.ResizeBilinear). ## Differences PyTorch: Multiple modes can be chosen when upsampling data. MindSpore:Currently only supports `bilinear` mode to sample data. `half_pixel_centers` defaults to False, to achieve the same result as PyTorch, it should be set to True. ## Code Example ```python import mindspore as ms import mindspore.nn as nn import torch import numpy as np # In MindSpore, it is predetermined to use bilinear to resize the input image. x = np.random.randn(1, 2, 3, 4).astype(np.float32) resize = nn.ResizeBilinear(half_pixel_centers=True) tensor = ms.Tensor(x) output = resize(tensor, (5, 5)) print(output.shape) # Out: # (1, 2, 5, 5) # In torch, parameter mode should be passed to determine which method to apply for resizing input image. x = np.random.randn(1, 2, 3, 4).astype(np.float32) resize = torch.nn.Upsample(size=(5, 5), mode='bilinear') tensor = torch.tensor(x) output = resize(tensor) print(output.detach().numpy().shape) # Out: # (1, 2, 5, 5) ```