首页 Paddle框架 帖子详情
老哥这个错误是什么意思
收藏
快速回复
Paddle框架 问答模型训练 1768 8
老哥这个错误是什么意思
收藏
快速回复
Paddle框架 问答模型训练 1768 8

RuntimeError: (NotFound) Operator elementwise_floordiv does not have kernel for data_type[double]:data_layout[ANY_LAYOUT]:place[CUDAPlace(0)]:library_type[PLAIN].
[Hint: Expected kernel_iter != kernels.end(), but received kernel_iter == kernels.end().] (at /paddle/paddle/fluid/imperative/prepared_operator.cc:159)
[operator < elementwise_floordiv > error]

我想在模型中加入SE,但好像在全局平局池化那出现了问题,产生了这个错误

0
收藏
回复
全部评论(8)
时间顺序
DeepGeGe
#2 回复于2021-12

我看到了与你这个错误很类似的一个错误,原因是暂时不支持。你这个错误应该也是同样的原因。

0
回复
兔太难、我好菜
#3 回复于2021-12
[图片] 我看到了与你这个错误很类似的一个错误,原因是暂时不支持。你这个错误应该也是同样的原因。

我换了几个代码,我看问题主要还是出在池化这一步上,在前向计算时,到池化这一步就会报错,难道是paddle半精度不支持池化吗,elementwise_floordiv好像是这个支持半精度

0
回复
兔太难、我好菜
#4 回复于2021-12
我换了几个代码,我看问题主要还是出在池化这一步上,在前向计算时,到池化这一步就会报错,难道是paddle半精度不支持池化吗,elementwise_floordiv好像是这个支持半精度

elementwise_floordiv好像是这个不支持半精度

0
回复
兔太难、我好菜
#5 回复于2021-12
[图片] 我看到了与你这个错误很类似的一个错误,原因是暂时不支持。你这个错误应该也是同样的原因。

我顺着代码找到了出问题的地方,应该就是在自适应平均池化哪个位置,

def count_adap_avgpool(m, x, y):
    kernel = paddle.to_tensor(
        [*(x[0].shape[2:])], dtype=paddle.int64) // paddle.to_tensor([*(y.shape[2:])], dtype=paddle.int64)
    total_add = paddle.prod(kernel)
    num_elements = y.numel().item()
    m.total_ops += counter_adap_avg(total_add, num_elements)

原代码是float64位 ,改成int64位 , 程序就可以正常执行了

0
回复
DeepGeGe
#6 回复于2021-12
我顺着代码找到了出问题的地方,应该就是在自适应平均池化哪个位置, def count_adap_avgpool(m, x, y):     kernel = paddle.to_tensor(         [*(x[0].shape[2:])], dtype=paddle.int64) // paddle.to_tensor([*(y.shape[2:])], dtype=paddle.int64)     total_add = paddle.prod(kernel)     num_elements = y.numel().item()     m.total_ops += counter_adap_avg(total_add, num_elements) 原代码是float64位 ,改成int64位 , 程序就可以正常执行了
展开

666666666666

0
回复
兔太难、我好菜
#7 回复于2021-12
666666666666

问题是出在这个地方,但我感觉改的不对

0
回复
M
Mapalas
#8 回复于2023-06

遇到同样问题了 解决了吗

 

0
回复
Juneno
#10 回复于2023-12
我顺着代码找到了出问题的地方,应该就是在自适应平均池化哪个位置, def count_adap_avgpool(m, x, y):     kernel = paddle.to_tensor(         [*(x[0].shape[2:])], dtype=paddle.int64) // paddle.to_tensor([*(y.shape[2:])], dtype=paddle.int64)     total_add = paddle.prod(kernel)     num_elements = y.numel().item()     m.total_ops += counter_adap_avg(total_add, num_elements) 原代码是float64位 ,改成int64位 , 程序就可以正常执行了
展开

谢谢老哥 我那个也跑起来了。请问一下“elementwise_floordiv好像是这个不支持半精度 ”是什么意思呢?能具体说一下吗,谢谢!

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户