文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

PR

小问题,全程线上修改...

一键搞定!

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.mint.nn.functional.grid_sample

查看源文件
mindspore.mint.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=False)[源代码]

给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。input 只支持4-D(GridSampler2D)和5-D(GridSampler3D)。

在4-D场景下,input 的shape为 (N,C,Hin,Win)grid 的shape为 (N,Hout,Wout,2)output 的shape为 (N,C,Hout,Wout)。 对于每个输出位置 output[n, :, h, w]grid[n, h, w] 指定 input 像素位置 xy,用于计算 output[n, :, h, w] 的插值。以5D为例,grid[n, d, h, w] 指定 xyz 像素位置的插值位置为[n, :, d, h, w]。mode 参数指定 nearestbilinear (bicubic暂不支持)插值法对输入像素进行采样。

grid 指定由 input 归一化的采样像素位置。因此,它应该在 [1,1] 范围内的值最多。

如果 grid 的值在 [1,1] 范围之外,则相应的输出将按照定义的 padding_mode 方式处理。如果 padding_mode 设置为 0 ,则使用 0 来表示出界的网格位置。 如果 padding_mode 设置为 border,对于出界网格位置,则使用border值。如果 padding_mode 设置为 reflection ,请使用边界所反映的位置的值用于指定出界网格位置。对于远离边界的位置,它会一直被反射,直到在边界内。

参数:
  • input (Tensor) - 4-D场景下,shape为 (N,C,Hin,Win),5-D场景下,shape为 (N,C,Din,Hin,Win)。数据类型为float32或float64。

  • grid (Tensor) - 4-D场景下,shape为 (N,Hout,Wout,2),5-D场景下,shape为 (N,Dout,Hout,Wout,3)。数据类型与 input 保持一致。

  • mode (str,可选) - 插值方法。可选方法为 'bilinear''nearest'。默认值: 'bilinear' 。注: 'bilinear' 还不支持。当 mode'bilinear',且输入为5-D,则 mode'trilinear'。但是,当输入为4-D,则 mode'bilinear'。默认值: 'bilinear'

    • 'nearest':最近邻插值。每个输出像素的值为最近的输入像素的值。这种方法简单快速,但可能导致块状或像素化的输出。

    • 'bilinear':双线性插值。每个输出像素是最接近的四个输入像素的加权平均值,使用双线性插值计算。与最近邻插值相比,此方法产生更平滑的结果。

    • 'trilinear':三线性插值。这是双线性插值在三维数据上的扩展。它在两个空间维度上执行双线性插值,并沿第三个维度进行线性插值。通常用于体积或三维图像插值。

  • padding_mode (str,可选) - 填充方法。可选方法为 'zeros''border''reflection'。默认值: 'zeros'

  • align_corners (bool,可选) - 如果设置成 True,-1和1被视为引用输入角像素的中心点。如果设置为 False,将被视为引用到输入角像素的角点,使采样更不受分辨率影响。默认值为 False

返回:

Tensor,数据类型与 input 相同,4-D场景下,shape为 (N,C,Hout,Wout),5-D场景下,shape为 (N,C,Dout,Hout,Wout)

异常:
  • TypeError - 如果 inputgrid 不是Tensor类型。

  • TypeError - 如果 inputgrid 的数据类型不一致。

  • TypeError - 如果 inputgrid 的数据类型无效。

  • TypeError - 如果 align_corners 不是一个布尔值。

  • ValueError - 如果 inputgrid 的维度不是四维或五维。

  • ValueError - 如果 input 的第一个维度不等于 grid 的第一个维度。

  • ValueError - 如果 grid 最后一个维度不等于2(4-D场景)或者3(5-D场景)。

  • ValueError - 如果 mode 不是 bilinearnearest,数据类型不为String。

  • ValueError - 如果 padding_mode 不是 zerosborderreflection,数据类型不为String。

支持平台:

Ascend

样例:

>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> input_x = Tensor(np.arange(16).reshape((2, 2, 2, 2)).astype(np.float32))
>>> grid = Tensor(np.arange(0.2, 1, 0.1).reshape((2, 2, 1, 2)).astype(np.float32))
>>> output = mint.nn.functional.grid_sample(input_x, grid, mode='bilinear', padding_mode='zeros',
...                          align_corners=True)
>>> print(output)
[[[[ 1.9      ]
   [ 2.1999998]]
  [[ 5.9      ]
   [ 6.2      ]]]
 [[[10.5      ]
   [10.8      ]]
  [[14.5      ]
   [14.8      ]]]]