334 Star 1.5K Fork 864

MindSpore / docs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
AvgPool2d.md 3.58 KB
一键复制 编辑 原始数据 按行查看 历史
luojianing 提交于 2023-07-21 15:16 . replace target=blank

Function Differences with torch.nn.AvgPool2d

View Source On Gitee

torch.nn.AvgPool2d

torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None)(input) -> Tensor

For more information, see torch.nn.AvgPool2d.

mindspore.nn.AvgPool2d

mindspore.nn.AvgPool2d(kernel_size=1, stride=1, pad_mode='valid', padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None, data_format='NCHW')(x) -> Tensor

For more information, see mindspore.nn.AvgPool2d.

Differences

PyTorch: Apply two-dimensional averaging pooling to an input signal consisting of multiple input planes.

MindSpore: This API implementation function of MindSpore is compatible with TensorFlow and PyTorch, When pad_mode is "valid" or "same", the function is consistent with TensorFlow, and when pad_mode is "pad", the function is consistent with PyTorch, compared with PyTorch 1.8.1, MindSpore additionally supports 3D input, which is consistent with PyTorch 1.12.

Categories Subcategories PyTorch MindSpore Differences
Parameters Parameter 1 kernel_size kernel_size Consistent function, no default values for PyTorch
Parameter 2 stride stride Consistent function, different default values of parameters
Parameter 3 padding padding Consistent
Parameter 4 ceil_mode ceil_mode Consistent
Parameter 5 count_include_pad count_include_pad Consistent
Parameter 6 divisor_override divisor_override Consistent
Parameter 7 - pad_mode MindSpore specifies how the pooling will be filled, with optional values of "same", "valid" or "pad". PyTorch does not have this parameter
Parameter 8 - data_format Specify the input data format in MindSpore, either "NHWC" or "NCHW". PyTorch does not have this parameter
Input Single input input x Same function, different parameter names

Code Example 1

The two APIs achieve the same function and have the same usage.

# PyTorch
import torch
import torch.nn as nn

m = nn.AvgPool2d(kernel_size=1, stride=1)
input_x = torch.tensor([[[[1, 0, 1], [0, 1, 1]]]],dtype=torch.float32)
output = m(input_x)
print(output.numpy())
# [[[[1. 0. 1.]
#    [0. 1. 1.]]]]

# MindSpore
import mindspore
import mindspore.nn as nn
from mindspore import Tensor

pool = nn.AvgPool2d(kernel_size=1, stride=1)
x = Tensor([[[[1, 0, 1], [0, 1, 1]]]], dtype=mindspore.float32)
output = pool(x)
print(output)
# [[[[1. 0. 1.]
#    [0. 1. 1.]]]]

Code Example 2

Use pad mode to ensure functional consistency.

import torch
import mindspore.nn as nn
import mindspore.ops as ops

pool = nn.AvgPool2d(4, stride=1, ceil_mode=True, pad_mode='pad', padding=2)
x1 = ops.randn(6, 6, 8, 8)
output = pool(x1)
print(output.shape)
# (6, 6, 9, 9)

pool = torch.nn.AvgPool2d(4, stride=1, ceil_mode=True, padding=2)
x1 = torch.randn(6, 6, 8, 8)
output = pool(x1)
print(output.shape)
# torch.Size([6, 6, 9, 9])
1
https://gitee.com/mindspore/docs.git
git@gitee.com:mindspore/docs.git
mindspore
docs
docs
r2.0

搜索帮助