错误RuntimeError: Event device type CUDA does not match blocking stream‘s device type CPU.

一、相关背景

一个pytorch项目,模型训练和推理。一开始没有问题,
后来 做了优化,推理的时候自动转化成tensorrt,再进行推理,这个时候也没有问题。
但是训练的时候,在loss回传的时候出现了问题,提示错误
RuntimeError: Event device type CUDA does not match blocking stream’s device type CPU.

二、解决方案

很奇怪我修改的东西,在训练的时候完全没有用到,为啥会导致训练出问题呢。后来发现问题在于,为了把pytorch 转化成 tensorrt的时候我导入相应文件的时候 使用了一个pycuda的初始化函数 ,这个无论是训练还是推理的时候都会导入。

import pycuda.autoinit

把cuda的自动初始化屏蔽掉就可以正常training了,当然 转化成tensorrt的相关操作也没有问题。

四、 原因

我也不知道… 不知道为啥cuda的自动初始化会导致loss反向传播出现问题。

猜你喜欢

转载自blog.csdn.net/qq_29007291/article/details/130294687