mindspore.nn.ImageGradients
- class mindspore.nn.ImageGradients[源代码]
计算每个颜色通道的图像渐变,返回为两个Tensor,分别表示高和宽方向上的变化率。
假设图像shape为 \(h*w\) ,则沿高和宽的梯度分别为 \(dy\) 和 \(dx\) 。
\[ \begin{align}\begin{aligned}dy[i] = \begin{cases} image[i+1, :]-image[i, :], &if\ 0<=i<h-1 \cr 0, &if\ i==h-1\end{cases}\\dx[i] = \begin{cases} image[:, i+1]-image[:, i], &if\ 0<=i<w-1 \cr 0, &if\ i==w-1\end{cases}\end{aligned}\end{align} \]- 输入:
images (Tensor) - 输入图像数据,格式为’NCHW’。
- 输出:
dy (Tensor) - 垂直方向的图像梯度,数据类型和shape与输入相同。
dx (Tensor) - 水平方向的图像梯度,数据类型和shape与输入相同。
- 异常:
ValueError - images 的shape长度不等于4。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> net = nn.ImageGradients() >>> image = Tensor(np.array([[[[1, 2], [3, 4]]]]), dtype=mindspore.int32) >>> output = net(image) >>> print(output) (Tensor(shape=[1, 1, 2, 2], dtype=Int32, value= [[[[2, 2], [0, 0]]]]), Tensor(shape=[1, 1, 2, 2], dtype=Int32, value= [[[[1, 0], [1, 0]]]]))