使用libtorch模型推理的时候出现报错std:runtime_error
这里报错的情况一般是数据不同步的问题,也就是说我们的模型是在gpu上,而数据是在cpu上,那么要做的一件事就是检查forward()中的变量是在cpu上还是在gpu上,检查方法:
std::cout<<input.device()<<std::endl;
在cpu上会打印cpu,gpu上打印gpu,然后检查模型是在gpu上还是在cpu上,检查方法:
std::cout<<model.device()<<std::endl;
最后看输出结果是不是都在CPU或者GPU上,下面是把数据和模型都加载到GPU上的方法:
input=input.cuda();
model.cuda();
这样可以解决std:runtime_error报错的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)