转换后的ONNX模型在CPU上运行,但不在GPU上运行

时间:2020-08-10 10:26:19

标签: python tensorflow onnx onnxruntime

我使用以下命令将TensorFlow模型转换为ONNX: python -m tf2onnx.convert --saved-model tensorflow-model-path --opset 10 --output model.onnx 转换成功,安装了onnxruntime后,我可以推断CPU了。

但是,当我创建一个新环境时,在其上安装onnxruntime-gpu并使用GPU进行推断,我会根据模型得到不同的错误消息。例如。对于MobileNet,我收到W:onnxruntime:Default, cuda_execution_provider.cc:1498 GetCapability] CUDA kernel not supported. Fallback to CPU execution provider for Op type: Conv node name: StatefulPartitionedCall/mobilenetv2_1.00_224/Conv1/Conv2D

我尝试了不同的操作方式。 有人知道为什么我在GPU上运行时会出错吗

1 个答案:

答案 0 :(得分:1)

那不是错误。这是一个警告,基本上是在告诉您特定的Conv节点将在CPU(而不是GPU)上运行。很有可能是因为GPU后端尚不支持非对称填充,并且正在进行PR来缓解此问题-https://github.com/microsoft/onnxruntime/pull/4627。合并此PR后,这些警告应会消失,此类Conv节点将在GPU后端上运行。