使用mindpsore.nn.conv3d在GPU上精度不足问题
收藏回复举报
使用mindpsore.nn.conv3d在GPU上精度不足问题
发表于2023-11-03 16:21:58
0 查看

1 系统环境

硬件环境(Ascend/GPU/CPU): GPU

MindSpore版本: mindspore=2.1

执行模式(PyNative/ Graph):不限

Python版本: Python=3.7

操作系统平台: Linux

2 报错信息

2.1 问题描述

mindpsore.nn.conv3d在GPU上精度不足问题,测试conv3d,在group不等于的场景下,用例概率性失败,失败原因为torch上的output和mindspore的output有部分维度结果不一致。

2.2 脚本

import mindspore
from mindspore import ops
from mindspore import Tensor, nn
from mindspore.common.api import jit
from mindspore import context
import numpy as np

import torch


input = np.random.uniform(size=(16,3,10,32,32))

ms_input = Tensor(input, mindspore.float32)
conv3d = nn.Conv3d(in_channels=3, out_channels=32, kernel_size=(4, 3, 3), has_bias=True, pad_mode='valid')
ms_out = conv3d(ms_input)

torch_input = torch.Tensor(input)
m = torch.nn.Conv3d(3, 32,kernel_size=(4, 3, 3))
torch_out = m(torch_input)


# 失败
y = np.subtract(ms_out.asnumpy(), torch_out.detach().numpy())
w = np.where(np.abs(y) > 0.00004, 1, 0)
z = np.count_nonzero(w)

3 根因分析

4 解决方案

******此处由用户填写******

包含文字方案和最终脚本代码

请将正确的脚本打包并上传附件

本帖最后由 匿名用户2023/11/09 14:42:09 编辑

我要发帖子