I'm trying to use the model from the repository (on google drive) with onnx instead of tensorflow.
I converted it with:
python3 -m tf2onnx.convert --graphdef mars-small128.pb --output mars-small128_nchw.onnx --inputs-as-nchw "images:0" --inputs "images:0" --outputs-as-nchw "features:0" --outputs "features:0"
Now I try to use it this way:
class ImageEncoder(object):
def __init__(self, checkpoint_filename):
self.image_shape=[128, 64]
self.session = ort.InferenceSession(checkpoint_filename, providers=['CUDAExecutionProvider'])
print(f"the result of get_provider is: {self.session.get_providers()}")
def __call__(self, data_x):
out = self.session.run(["features:0"], {'images:0':data_x})[0]
return out
print
gives me the result of get_provider is: ['CUDAExecutionProvider', 'CPUExecutionProvider']
But I see that my CPU load raises to 100% on all cores(!) and my gpu load in nvidia-smi
stays low.
>>> onnx.__version__
'1.11.0'
>>> onnxruntime.__version__
'1.10.0'
>>> tf2onnx.__version__
'1.12.1'
cuda_11.0