1 系统环境
硬件环境(Ascend/GPU/CPU): Ascend/GPU/CPU
MindSpore版本: 1.8.1、1.9.0
执行模式(PyNative/ Graph): 不限模式
Python版本: 3.7.5
操作系统平台: Ubuntu 16.04
2 报错信息
2.1 问题描述
mindspore 1.9.0 mindspore.ops.MaxPool3D在ceil_mode=True时计算结果出现问题
2.2 报错信息
2.3 脚本代码(代码格式,可上传附件)
3 根因分析
******此处由用户补充详细的定位过程******
移植python侧infer到cpp侧,python 中整数相除会保存浮点数结果,cpp 中忽略了此处细节,使用int型保存结果,造成整除,ceil失去意义。可以在Cpp infer中使用浮点数保存中间计算结果,确保ceil生效,和python侧逻辑保持一致。
4 解决方案
******此处由用户填写******
包含文字方案和最终脚本代码
支持上传附件
1 系统环境
硬件环境(Ascend/GPU/CPU): Ascend/GPU/CPU
MindSpore版本: 1.8.1、1.9.0
执行模式(PyNative/ Graph): 不限模式
Python版本: 3.7.5
操作系统平台: Ubuntu 16.04
2 报错信息
2.1 问题描述
mindspore 1.9.0 mindspore.ops.MaxPool3D在ceil_mode=True时计算结果出现问题
2.2 报错信息
2.3 脚本代码(代码格式,可上传附件)
import mindspore as ms import numpy as np print(f"mindspore version: {ms.__version__}") a = ms.Tensor(np.random.randn(4, 3, 6, 6, 5), ms.float32) print(f"input shape: {a.shape}") maxpool = ms.ops.MaxPool3D(kernel_size=3, strides=2, pad_mode="pad", pad_list=0, ceil_mode=True) res = maxpool(a) print(f"res shape: {res.shape}") maxpool = ms.ops.MaxPool3D(kernel_size=3, strides=2, pad_mode="pad", pad_list=0, ceil_mode=False) res = maxpool(a) print(f"no ceil res shape: {res.shape}")3 根因分析
******此处由用户补充详细的定位过程******
移植python侧infer到cpp侧,python 中整数相除会保存浮点数结果,cpp 中忽略了此处细节,使用int型保存结果,造成整除,ceil失去意义。可以在Cpp infer中使用浮点数保存中间计算结果,确保ceil生效,和python侧逻辑保持一致。
4 解决方案
******此处由用户填写******
包含文字方案和最终脚本代码
支持上传附件