amazon-dsstne
amazon-dsstne copied to clipboard
Model deployment in c++
Let's assume I created and trained some DNN model and then I want to deploy it into some standalone c++ project. How can I do it? Can you give me any advices?
What I do is build an executable along with the library. However, a recent attempt to do that by linking libdsstne.a instead revealed two issues:
- The linker barfing on symbol redefinitions
- The revelation that elapsed_time in NNUtils.cpp is not currently linked into libdsstne.a, which IMO it should be, or there should be a copy of this small procedure within libdsstne.a Either solution works for me, it's not a lot of code.
I think we should provide an example for this very purpose. I will put one together, but how do you guys want to address these two issues?
Scott
On Tue, Dec 6, 2016 at 9:48 AM, Adam Dendek [email protected] wrote:
Let's assume I created and trained some DNN model and then I want to deploy it into some standalone c++ project. How can I do it? Can you give me any advices?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/amznlabs/amazon-dsstne/issues/103, or mute the thread https://github.com/notifications/unsubscribe-auth/ARNK9lB7oMw4IcsLn3T6Dl_CiTuZOyRtks5rFZ_RgaJpZM4LFsfT .
My vote for resolving the elapsed_time issue is to simply make a copy of the function in NNNetwork.cpp, ensuring that it is not exported in any way.
Normally I would be opposed to making copies of functions. But in this case, there is just the one usage of that function, and that can be 'refactored out' as the API for the DSSTNE engine evolves As an example, if we decide to reduce the use of printf-based logging in the engine, that would be a good opportunity to clean this up properly.
As for the symbol redefinition issues go, that is something I haven't encountered yet, so it would be good to find out more about how your build is configured.