CTranslate icon indicating copy to clipboard operation
CTranslate copied to clipboard

Does this code work for a model trained with recent OpenNMT pytorch version?

Open dreamk73 opened this issue 7 years ago • 2 comments

I trained a model with OpenNMT with pytorch 0.4. I would like to load the trained model in c++ and translate an input string with it. Can I do that with this version of CTranslate? When I use torch.save in OpenNMT to save the model, I get a pt file and when I try to load it with a small test script that I was able to compile I just get this error:

undefined object=176816768 $ Error: Assertion `0' failed. at /data/esther/Projects/G2P/lts_experiments/scripts/OpenNMT-CTranslate/src/th/Obj.cc:400

I did notice the example in the Readme file shows a model with a t7 extension, so maybe it is not compatible? Any ideas on how to make them compatible?

Command used to compile: g++ -O3 -std=c++11 -o test_translate test_translate.cc -IOpenNMT-CTranslate/include -IOpenNMT-CTranslate/lib/TH -IOpenNMT/lib/tokenizer/include -I/usr/include/eigen3 -LOpenNMT-CTranslate/build -lonmt

g++ version 4.8.5 CentOS 7

dreamk73 avatar Jun 21 '18 23:06 dreamk73

No, unfortunately the implementation was designed to support OpenNMT LuaTorch models only. The CTranslate project predates the release of PyTorch itself which uses a very different model serialization logic.

guillaumekln avatar Jun 22 '18 07:06 guillaumekln

Ok, that is too bad. I have been trying to find a fairly simple C++ interface to load a model and translate. I have been unable so far to compile the latest caffe2 sources, otherwise I would try to export it to that.

dreamk73 avatar Jun 22 '18 13:06 dreamk73