概述
1.报错:UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
image = Variable(image, volatile=True)
解决办法:
with torch.no_grad():
image = Variable(image)
2.报错:TypeError: Object of type int64 is not JSON serializable
原代码:
r = {"label": label, "label name": label_name,
"probability": float(prob)}
是由于其中的label默认int类型,json库不认识。
解决办法:手动转为字符串类型。
label = str(label)
3.报错:pycuda._driver.LogicError: explicit_context_dependent failed: invalid device context - no currently active context?
网上都说是由于pycuda.driver没有初始化,导致无法得到context,需要在导入pycuda.driver后再导入pycuda.autoinit。即:
import pycuda.driver as cuda
import pycuda.autoinit
但我的代码中有这两行。而且单独执行tensorrt推理过程,也就是不引入flask时,是不会报错的,所以考虑可能是flask服务器在请求进来时会产生新的进程导致的。
参考:https://www.coder.work/article/352714
解决办法:将flask中调用的函数修改为:
最后
以上就是淡然万宝路为你收集整理的【问题解决】同一机器上Flask部署TensorRT报错记录1.报错:UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead. image = Variable(image, volatile=True)2.报错:TypeError: Object of type int64 is not JSON serializable3.报错:pycuda._driver.的全部内容,希望文章能够帮你解决【问题解决】同一机器上Flask部署TensorRT报错记录1.报错:UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead. image = Variable(image, volatile=True)2.报错:TypeError: Object of type int64 is not JSON serializable3.报错:pycuda._driver.所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复