Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR

解决 Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR 问题

1、原因

深度可分离卷积中group参数大于1,导致torch模型在转caffe时出错。

2、解决方法一:手动修改prototxt文件

参看onnx模型转caffe模型中的第一部分,这个报错发生之后,会有prototxt文件生成,编辑prototxt文件,在卷积层中添加engine: CAFFE字段。之后把源码中的生成prototxt文件的代码注释掉,再次运行转换代码,即可生成caffemodel文件。
该方法需要频繁修改代码、注释、反注释

3、解决方法二:修改源码,一步到位

找到 _operators.py 文件中的卷积层转换的代码,即 _convert_conv 函数,然后在 layer=myf( ) 中添加 engine=1字段。此后再转换模型时都会在卷积层中自动添加 engine: CAFFE
此处可以增加对group数值的判断,当 group>1 时再添加engine=1,当 group=1 时不添加,不过修改与否影响不大。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值