Recently, I am using libtorch to do the prediction. I have saved the original model to .pt model using torch::jit::trace( ) API.
traced_script_module = torch.jit.trace(base_model, example)
traced_script_module.save(ouput_path)
Then I loaded it in C++ using torch::jit::load() API and do the model.eval().
module = torch::jit::load(model_path);
module->eval()
But I found that libtorch occupied much more GPU memory to do the forward( ) with same image size than original module in python.
So I reloaded the .pt model in python. I found it have the same performance as the original module.
It seems like that C++ uses much more memory than python with same model and same image size.
How can I deal with it? Does any one has the same problem? thanks.
pytorch version: 1.1.0
python version: 3.7.0
OS: windows 10
IDE: VS2015
cuda10 + cudnn10.0 v7.5.1.10