Skip to content
This repository has been archived by the owner on Jun 10, 2021. It is now read-only.

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

Open
dreamk73 opened this issue Jun 21, 2018 · 2 comments

Comments

@dreamk73
Copy link

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

@guillaumekln
Copy link
Collaborator

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.

@dreamk73
Copy link
Author

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants