operators doc: ApplyAdagradV2, GridSampler2D, GridSampler3D, PopulationCount, SparseApplyAdagrad,

SparseApplyAdagradV2, SparseApplyFtrl, Trunc, TruncateDiv, TruncateMod, UpsampleNearest3D, CTCGreedyDecoder
This commit is contained in:
panfengfeng 2022-07-18 13:38:59 -04:00
parent c887725149
commit b774ecb9e4
19 changed files with 354 additions and 2 deletions

View File

@ -101,6 +101,7 @@ functional算子是经过初始化后的Primitive可以直接作为函数使
:nosignatures:
:template: classtemplate.rst
mindspore.ops.grid_sample
mindspore.ops.uniform_candidate_sampler
距离函数
@ -180,6 +181,9 @@ functional算子是经过初始化后的Primitive可以直接作为函数使
mindspore.ops.sub
mindspore.ops.svd
mindspore.ops.tan
mindspore.ops.trunc
mindspore.ops.truncate_div
mindspore.ops.truncate_mod
mindspore.ops.xlogy
.. list-table::
@ -390,6 +394,7 @@ Array操作
mindspore.ops.meshgrid
mindspore.ops.normal
mindspore.ops.nonzero
mindspore.ops.population_count
mindspore.ops.range
mindspore.ops.rank
mindspore.ops.repeat_elements

View File

@ -188,8 +188,11 @@ MindSpore中 `mindspore.ops` 接口与上一版本相比,新增、删除和支
:template: classtemplate.rst
mindspore.ops.ComputeAccidentalHits
mindspore.ops.GridSampler2D
mindspore.ops.GridSampler3D
mindspore.ops.LogUniformCandidateSampler
mindspore.ops.UniformCandidateSampler
mindspore.ops.UpsampleNearest3D
mindspore.ops.UpsampleTrilinear3D
图像处理
@ -293,6 +296,7 @@ MindSpore中 `mindspore.ops` 接口与上一版本相比,新增、删除和支
mindspore.ops.SquareSumAll
mindspore.ops.Sub
mindspore.ops.Tan
mindspore.ops.Trunc
mindspore.ops.TruncateDiv
mindspore.ops.TruncateMod
mindspore.ops.Xdivy

View File

@ -1,5 +1,5 @@
mindspore.ops.ApplyAdagradV2
=============================
mindspore.ops.ApplyAdagradV2
============================
.. py:class:: mindspore.ops.ApplyAdagradV2(epsilon, update_slots=True)

View File

@ -0,0 +1,8 @@
mindspore.ops.CTCGreedyDecoder
==============================
.. py:class:: mindspore.ops.CTCGreedyDecoder(merge_repeated=True)
对输入中给定的logits执行贪婪解码。
更多参考详见 :func:`mindspore.ops.ctc_greedy_decoder`

View File

@ -0,0 +1,8 @@
mindspore.ops.GridSampler2D
===========================
.. py:class:: mindspore.ops.GridSampler2D(interpolation_mode='bilinear', padding_mode='zeros', align_corners=False)
给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。
更多参考详见 :func:`mindspore.ops.grid_sample`

View File

@ -0,0 +1,8 @@
mindspore.ops.GridSampler3D
===========================
.. py:class:: mindspore.ops.GridSampler3D(interpolation_mode='bilinear', padding_mode='zeros', align_corners=False)
给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。
更多参考详见 :func:`mindspore.ops.grid_sample`

View File

@ -0,0 +1,8 @@
mindspore.ops.PopulationCount
=============================
.. py:class:: mindspore.ops.PopulationCount
计算二进制数中1的个数。
更多参考详见 :func:`mindspore.ops.population_count`

View File

@ -0,0 +1,42 @@
mindspore.ops.SparseApplyAdagrad
================================
.. py:class:: mindspore.ops.SparseApplyAdagrad(lr, update_slots=True, use_locking=False)
根据Adagrad算法更新相关参数。
.. math::
\begin{array}{ll} \\
accum += grad * grad \\
var -= lr * grad * \frac{1}{\sqrt{accum}}
\end{array}
`var``accum``grad` 的输入遵循隐式类型转换规则,使数据类型一致。如果它们具有不同的数据类型,则低精度数据类型将转换为相对最高精度的数据类型。
**参数:**
- **lr** (float) - 学习率。
- **update_slots** (bool) - 如果为True则将更新 `accum` 。默认值True。
- **use_locking** (bool) - 是否对参数更新加锁保护。默认值False。
**输入:**
- **var** (Parameter) - 要更新的变量。为任意维度其数据类型为float16或float32。
- **accum** (Parameter) - 要更新的累积。shape和数据类型必须与 `var` 相同。
- **grad** (Tensor) - 梯度为一个Tensor。shape和数据类型必须与 `var` 相同,且需要满足 :math:`grad.shape[1:] = var.shape[1:] if var.shape > 1`
- **indices** (Tensor) - `var``accum` 第一维度的索引向量数据类型为int32且需要保证 :math:`indices.shape[0] = grad.shape[0]`
**输出:**
2个Tensor组成的tuple更新后的参数。
- **var** (Tensor) - shape和数据类型与 `var` 相同。
- **accum** (Tensor) - shape和数据类型与 `accum` 相同。
**异常:**
- **TypeError** - 如果 `lr` 不是float类型。
- **TypeError** - 如果 `update_slots` 或者 `use_locking` 不是布尔值。
- **TypeError** - 如果 `var``accum``lr``grad` 的数据类型既不是float16也不是float32。
- **TypeError** - 如果 `indices` 的数据类型不是int32。
- **RuntimeError** - 如果 `var``accum``grad` 不支持数据类型转换。

View File

@ -0,0 +1,43 @@
mindspore.ops.SparseApplyAdagradV2
==================================
.. py:class:: mindspore.ops.SparseApplyAdagradV2(lr, epsilon, update_slots=True, use_locking=False)
根据Adagrad算法更新相关参数。
.. math::
\begin{array}{ll} \\
accum += grad * grad \\
var -= lr * grad * \frac{1}{\sqrt{accum} + \epsilon}
\end{array}
`var``accum``grad` 的输入遵循隐式类型转换规则,使数据类型一致。如果它们具有不同的数据类型,则低精度数据类型将转换为相对最高精度的数据类型。
**参数:**
- **lr** (float) - 学习率。
- **epsilon** (float) - 添加到分母上的较小值,以确保数值的稳定性。
- **update_slots** (bool) - 如果为True则将更新 `accum` 。默认值True。
- **use_locking** (bool) - 是否对参数更新加锁保护。默认值False。
**输入:**
- **var** (Parameter) - 要更新的变量。为任意维度其数据类型为float16或float32。
- **accum** (Parameter) - 要更新的累积。shape和数据类型必须与 `var` 相同。
- **grad** (Tensor) - 梯度为一个Tensor。shape和数据类型必须与 `var` 相同,且需要满足 :math:`grad.shape[1:] = var.shape[1:] if var.shape > 1`
- **indices** (Tensor) - `var``accum` 第一维度的索引向量数据类型为int32且需要保证 :math:`indices.shape[0] = grad.shape[0]`
**输出:**
2个Tensor组成的tuple更新后的参数。
- **var** (Tensor) - shape和数据类型与 `var` 相同。
- **accum** (Tensor) - shape和数据类型与 `accum` 相同。
**异常:**
- **TypeError** - 如果 `lr` 或者 `epsilon` 不是float类型。
- **TypeError** - 如果 `update_slots` 或者 `use_locking` 不是布尔值。
- **TypeError** - 如果 `var``accum``lr``grad` 的数据类型既不是float16也不是float32。
- **TypeError** - 如果 `indices` 的数据类型不是int32。
- **RuntimeError** - 如果 `var``accum``grad` 不支持数据类型转换。

View File

@ -0,0 +1,38 @@
mindspore.ops.SparseApplyFtrl
=============================
.. py:class:: mindspore.ops.SparseApplyFtrl(lr, l1, l2, lr_power, use_locking=False)
根据FTRL-proximal算法更新相关参数。
更多详细信息请参见 :class:`mindspore.nn.FTRL`
**参数:**
- **lr** (float) - 学习率,必须为正值。
- **l1** (float) - l1正则化必须大于或等于零。
- **l2** (float) - l2正则化必须大于或等于零。
- **lr_power** (float) - 在训练期间控制降低学习率必须小于或等于零。如果lr_power为零则使用固定学习率。
- **use_locking** (bool) - 是否对参数更新加锁保护。默认值False。
**输入:**
- **var** (Parameter) - 要更新的权重。数据类型必须为float16或float32。shape为 :math:`(N, *)` ,其中 :math:`*` 表示任意数量的附加维度。
- **accum** (Parameter) - 要更新的累数值shape和数据类型必须与 `var` 相同。
- **linear** (Parameter) - 要更新的线性系数shape和数据类型必须与 `var` 相同。
- **grad** (Tensor) - 梯度为一个Tensor。数据类型必须与 `var` 相同,且需要满足 :math:`grad.shape[1:] = var.shape[1:] if var.shape > 1`
- **indices** (Tensor) - `var``accum` 第一维度的索引向量数据类型为int32或int64且需要保证 :math:`indices.shape[0] = grad.shape[0]`
**输出:**
- **var** (Tensor) - shape和数据类型与 `var` 相同。
- **accum** (Tensor) - shape和数据类型与 `accum` 相同。
- **linear** (Tensor) - shape和数据类型与 `linear` 相同。
**异常:**
- **TypeError** - 如果 `lr``l1``l2``lr_power` 不是float类型。
- **TypeError** - 如果 `use_locking` 不是bool。
- **TypeError** - 如果 `var``grad``linear` 或者 `grad` 的数据类型既不是float16也不是float32。
- **TypeError** - 如果 `indices` 不是int32也不是int64类型。
- **RuntimeError** - 如果 `var``grad``linear` 或者 `grad` 不支持数据类型转换。

View File

@ -0,0 +1,8 @@
mindspore.ops.Trunc
===================
.. py:class:: mindspore.ops.Trunc
返回一个新的张量,该张量具有输入元素的截断整数值。
更多参考详见 :func:`mindspore.ops.trunc`

View File

@ -0,0 +1,32 @@
mindspore.ops.UpsampleNearest3D
===============================
.. py:class:: mindspore.ops.UpsampleNearest3D(output_size=None, scales=None)
执行最近邻上采样操作。
使用指定的 `output_size``scales` 因子采用最近邻算法对输入进行缩放。其中 `output_size``scales` 必须给出一个,且不能同时指定。
**参数:**
- **output_size** (Union[tuple[int], list[int]]) - 指定输出卷大小的int型列表。默认值为None。
- **scales** (Union[tuple[float], list[float]]) - 指定上采样因子的浮点数列表。默认值为None。
**输入:**
- **x** (Tensor) - shape: :math:`(N, C, D_{in}, H_{in}, W_{in})`
**输出:**
Tensorshape: :math:`(N, C, D_{out}, H_{out}, W_{out})`,数据类型与输入 `x` 相同。
**异常:**
- **TypeError** - `x` 的维度不为5。
- **TypeError** - `x` 的数据类型不为float16float32。
- **TypeError** - `output_size` 的数据类型不为int型列表。
- **TypeError** - `scales` 的数据类型不为float型列表。
- **ValueError** - `output_size` 的类型为列表其长度不为3。
- **ValueError** - `scales` 的类型为列表其长度不为3。
- **ValueError** - `output_size``scales` 两者都为None。
- **ValueError** - `output_size``scales` 两者都为非空列表。

View File

@ -0,0 +1,42 @@
mindspore.ops.grid_sample
=========================
.. py:function:: mindspore.ops.grid_sample(input_x, grid, interpolation_mode='bilinear', padding_mode='zeros', align_corners=False)
给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。`input_x` 只支持4-DGridSampler2D和5-DGridSampler3D
在4-D场景下`input_x` 的shape为 :math:`(N, C, H_{in}, W_{in})``grid` 的shape为 :math:`(N, H_{out}, W_{out}, 2)``output` 的shape为 :math:`(N, C, H_{out}, W_{out})`
对于每个输出位置 `output[n, :, h, w]``grid[n, h, w]` 指定 `input_x` 像素位置 `x``y`,用于计算 `output[n, :, h, w]` 的插值。以5D为例`grid[n, d, h, w]` 指定 `x`
`y``z` 像素位置的插值位置为[n, :, d, h, w]。`interpolation_mode` 参数指定 `nearest``bilinear``bicubic` (仅支持4D情况)插值法对输入像素进行采样。
`grid` 指定由 `input_x` 归一化的采样像素位置。因此,它应该在 :math:`[-1, 1]` 范围内的值最多。
如果 `grid` 的值在 :math:`[-1, 1]` 范围之外,则相应的输出将按照定义的 `padding_mode` 方式处理。如果 `padding_mode` 设置为 `0`,则使用 :math:`0` 来表示出界的网格位置。
如果 `padding_mode` 设置为 `border`对于出界网格位置则使用border值。如果 `padding_mode` 设置为 `reflection`,请使用边界所反映的位置的值用于指定出界网格位置。对于
远离边界的位置,它会一直被反射,直到在边界内。
**参数:**
- **input_x** (Tensor) - 4-D场景下shape为 :math:`(N, C, H_{in}, W_{in})`5-D场景下shape为 :math:`(N, C, D_{in}, H_{in}, W_{in})`。数据类型为float32或float64。
- **grid** (Tensor) - 4-D场景下shape为 :math:`(N, H_{out}, W_{out}, 2)`5-D场景下shape为 :math:`(N, D_{out}, H_{out}, W_{out}, 3)`。数据类型与 `input_x`保持一致。
- **interpolation_mode** (str) - 插值方法。可选方法为 `bilinear``nearest``bicubic`。默认值:`bilinear`。需要注意的是 `bicubic` 只支持4-D输入。当 `interpolation_mode`
`bilinear`且输入为5-D`interpolation_mode``trilinear`。但是当输入为4-D`interpolation_mode``bilinear`
- **padding_mode** (str) - 填充方法。可选方法为 `zeros``border``reflection`。默认值为 `zeros`
- **align_corners** (bool) - 布尔值。如果设置成 `True`-1和1被视为引用输入角像素的中心点。如果设置为 `False`,将被视为引用到输入角像素的角点,使采样更不受分辨率影响。
默认值为 `False`
**返回:**
Tensor数据类型与 `input_x` 相同4-D场景下shape为 :math:`(N, C, H_{out}, W_{out})`5-D场景下shape为 :math:`(N, C, D_{out}, H_{out}, W_{out})`
**异常:**
- **TypeError** - 如果 `input_x``grid` 不是Tensor类型。
- **TypeError** - 如果 `input_x``grid` 的数据类型不一致。
- **TypeError** - 如果 `input_x``grid` 的数据类型无效。
- **TypeError** - 如果 `align_corners` 不是一个布尔值。
- **ValueError** - 如果 `input_x``grid` 的维度不是4维或5维。
- **ValueError** - 如果 `input_x` 的第一个维度不等于 `grid` 的第一个维度。
- **ValueError** - 如果 `grid` 最后一个维度不等于24-D场景或者35-D场景
- **ValueError** - 如果 `interpolation_mode` 不是 `bilinear``nearest``bicubic`数据类型不为String。
- **ValueError** - 如果 `padding_mode` 不是 `zeros``border``reflection`数据类型不为String。

View File

@ -0,0 +1,20 @@
mindspore.ops.population_count
==============================
.. py:function:: mindspore.ops.population_count(input)
计算二进制数中1的个数。
**参数:**
- **input** (Tensor) - 任意维度的Tensor。Ascend平台支持的数据类型为int16、uint16CPU平台支持的数据类型为int8、int16、int32、int64、uint8、uint16、uint32、uint64。
**返回:**
Tensorshape与 `input` 相同数据类型为uint8。
**异常:**
- **TypeError** - `input` 不是Tensor。
- **TypeError** - `input` 的数据类型不是int16或uint16Ascend平台
`input` 的数据类型不是int8、int16、int32、int64、uint8、uint16、uint32、uint64CPU平台

View File

@ -0,0 +1,18 @@
mindspore.ops.trunc
===================
.. py:function:: mindspore.ops.trunc(input_x)
返回一个新的张量,该张量具有输入元素的截断整数值。
**参数:**
- **input_x** (Tensor) - 任意维度的Tensor。
**返回:**
Tensorshape和数据类型与 `input_x` 相同。
**异常:**
- **TypeError** - `input_x` 不是Tensor。

View File

@ -0,0 +1,27 @@
mindspore.ops.truncate_div
==========================
.. py:function:: mindspore.ops.truncate_div(x, y)
对于整数类型将第一个输入Tensor与第二个输入Tensor逐元素相除。结果将向0取整。
输入 `x``y` 应能遵循隐式类型转换规则使数据类型一致。
输入必须为两个Tensor或一个Tensor和一个标量。
当输入为两个Tensor时数据类型不能同时为bool类型。
当输入是一个Tensor和一个标量时标量只能是一个常数。
.. note::
支持shape广播。
**参数:**
- **x** (Union[Tensor, Number, bool]) - Number或bool类型的Tensor。
- **y** (Union[Tensor, Number, bool]) - Number或bool类型的Tensor。`x``y` 不能同时为bool类型。
**返回:**
Tensorshape为输入广播后的shape数据类型为两个输入中精度较高的输入的类型。
**异常:**
- **TypeError** - `x``y` 数据类型不是以下之一Tensor、Number或bool。

View File

@ -0,0 +1,32 @@
mindspore.ops.truncate_mod
==========================
.. py:function:: mindspore.ops.truncate_mod(x, y)
逐元素取模。
输入 `x``y` 应能遵循隐式类型转换规则使数据类型一致。
输入必须为两个Tensor或一个Tensor和一个标量。
当输入为两个Tensor时数据类型不能同时为bool类型。支持shape广播。
当输入是一个Tensor和一个标量时标量只能是一个常数。
.. warning::
- 输入数值不能为0。
- 当输入含有超过2048个元素该操作不能保证千分之二的精度要求。
- 由于架构不同该算子在NPU和CPU上的计算结果可能不一致。
- 若shape为D1、D2...、Dn则D1*D2...*DN<=1000000n<=8。
**参数:**
- **x** (Union[Tensor, Number, bool]) - Number或bool类型的Tensor。
- **y** (Union[Tensor, Number, bool]) - Number或bool类型的Tensor。
**返回:**
Tensorshape为输入进行广播后的shape数据类型为两个输入中精度较高的输入的类型。
**异常:**
- **TypeError** - `x``y` 数据类型不是以下之一Tensor、Number、bool。
- **TypeError** - `x``y` 均不是Tensor。
- **ValueError** - `x``y` 的shape无法进行广播转换。

View File

@ -101,6 +101,7 @@ Sampling Functions
:nosignatures:
:template: classtemplate.rst
mindspore.ops.grid_sample
mindspore.ops.uniform_candidate_sampler
Distance Functions
@ -184,6 +185,9 @@ Element-by-Element Operations
mindspore.ops.sub
mindspore.ops.svd
mindspore.ops.tan
mindspore.ops.trunc
mindspore.ops.truncate_div
mindspore.ops.truncate_mod
mindspore.ops.xlogy
.. list-table::
@ -393,6 +397,7 @@ Array Operation
mindspore.ops.meshgrid
mindspore.ops.normal
mindspore.ops.nonzero
mindspore.ops.population_count
mindspore.ops.range
mindspore.ops.rank
mindspore.ops.repeat_elements

View File

@ -187,8 +187,11 @@ Sampling Operator
:template: classtemplate.rst
mindspore.ops.ComputeAccidentalHits
mindspore.ops.GridSampler2D
mindspore.ops.GridSampler3D
mindspore.ops.LogUniformCandidateSampler
mindspore.ops.UniformCandidateSampler
mindspore.ops.UpsampleNearest3D
mindspore.ops.UpsampleTrilinear3D
Image Processing
@ -292,6 +295,7 @@ Element-wise Operator
mindspore.ops.SquareSumAll
mindspore.ops.Sub
mindspore.ops.Tan
mindspore.ops.Trunc
mindspore.ops.TruncateDiv
mindspore.ops.TruncateMod
mindspore.ops.Xdivy