torch.ao.nn.quantized.functional 的源代码
r""" 功能接口(量化)。"""
from typing import List, Optional
import warnings
import torch
from torch import Tensor
from torch.nn.modules.utils import _pair, _triple
from torch.jit.annotations import BroadcastingList2
from .modules.utils import _pair_from_first
# 尽管一些函数和文档字符串是从 torch.nn 镜像过来的,
# 但我们希望将它们保留在这里以备将来更改。
__all__ = [
"avg_pool2d",
"avg_pool3d",
"adaptive_avg_pool2d",
"adaptive_avg_pool3d",
"conv1d",
"conv2d",
"conv3d",
"interpolate",
"linear",
"max_pool1d",
"max_pool2d",
"celu",
"leaky_relu",
"hardtanh",
"hardswish",
"threshold",
"elu",
"hardsigmoid",
"clamp",
"upsample",
"upsample_bilinear",
"upsample_nearest",
]
[docs]def avg_pool2d(input, kernel_size, stride=None, padding=0, ceil_mode=False,
count_include_pad=True, divisor_override=None):
r"""
在 :math:`kH \times kW` 区域中应用 2D 平均池化操作,步长为 :math:`sH \times sW`。
输出特征的数量等于输入平面的数量。
.. 注意:: 输入量化参数传播到输出。
参见 :class:`~torch.ao.nn.quantized.AvgPool2d` 了解详细信息和输出形状。
参数:
input: 量化输入张量 :math:`(\text{minibatch} , \text{in\_channels} , iH , iW)`
kernel_size: 池化区域的大小。可以是单个数字或元组 `(kH, kW)`
stride: 池化操作的步长。可以是单个数字或元组 `(sH, sW)`。默认值: :attr:`kernel_size`
padding: 输入两侧的隐式零填充。可以是单个数字或元组 `(padH, padW)`。默认值: 0
ceil_mode: 当为 True 时,将使用 `ceil` 而不是 `floor` 来计算输出形状。默认值: ``False``
count_include_pad: 当为 True 时,将在平均计算中包含零填充。默认值: ``True``
divisor_override: 如果指定,将用作除数,否则将使用池化区域的大小。默认值: None
"""
if not input.is_quantized:
raise ValueError("Input to 'quantized.avg_pool2d' must be quantized!")
return torch.nn.functional.avg_pool2d(input, kernel_size, stride, padding,
ceil_mode, count_include_pad,
divisor_override)
[docs]def avg_pool3d(input, kernel_size, stride=None, padding=0, ceil_mode=False,
count_include_pad=True, divisor_override=None):
r"""
在 :math:`kD \times kH \times kW` 区域中应用 3D 平均池化操作,步长为 :math:`sD \times sH \times sW`。
输出特征的数量等于输入平面的数量。
.. 注意:: 输入量化参数传播到输出。
参数:
input: 量化输入张量 :math:`(\text{minibatch} , \text{in\_channels} , iH , iW)`
kernel_size: 池化区域的大小。可以是单个数字或元组 `(kD, kH, kW)`
stride: 池化操作的步长。可以是单个数字或元组 `(sD, sH, sW)`。默认值: :attr:`kernel_size`
padding: 输入两侧的隐式零填充。可以是单个数字或元组 `(padD, padH, padW)`。默认值: 0
ceil_mode: 当为 True 时,将使用 `ceil` 而不是 `floor` 来计算输出形状。默认值: ``False``
count_include_pad: 当为 True 时,将在平均计算中包含零填充。默认值: ``True``
divisor_override: 如果指定,将用作除数,否则将使用池化区域的大小。默认值: None
"""
if not input.is_quantized:
raise ValueError("Input to 'quantized.avg_pool3d' must be quantized!")
return torch.nn.functional.avg_pool3d(input, kernel_size, stride, padding,
ceil_mode, count_include_pad,
divisor_override)
[docs]def adaptive_avg_pool2d(input: Tensor, output_size: BroadcastingList2[int]) -> Tensor:
r"""
对由多个量化输入平面组成的量化输入信号应用 2D 自适应平均池化。
.. 注意:: 输入量化参数传播到输出。
参见 :class:`~torch.ao.nn.quantized.AdaptiveAvgPool2d` 了解详细信息和输出形状。
参数:
output_size: 目标输出大小(单个整数或双整数元组)
"""
if not input.is_quantized:
raise ValueError("Input to 'quantized.functional.adaptive_avg_pool2d' must be quantized!")
return torch.nn.functional.adaptive_avg_pool2d(input, output_size)
[docs]def adaptive_avg_pool3d(input: Tensor, output_size: BroadcastingList2[int]) -> Tensor:
r"""
对由多个量化输入平面组成的量化输入信号应用 3D 自适应平均池化。