From bf52c0164da448f04bdcf90f12f50784a28a73ec Mon Sep 17 00:00:00 2001 From: PaliC Date: Tue, 25 Oct 2022 21:00:07 +0000 Subject: [PATCH] path env example [ghstack-poisoned] --- examples/CMakeLists.txt | 3 ++ examples/movable_example/movable_example.cpp | 1 - examples/path_env/path_env.cpp | 32 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 examples/path_env/path_env.cpp diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a6a901fb..df100ba1 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -27,3 +27,6 @@ target_link_libraries(quickstart PUBLIC "-Wl,--no-as-needed -rdynamic" dl pthrea add_executable(movable_example movable_example/movable_example.cpp) target_link_libraries(movable_example PUBLIC "-Wl,--no-as-needed -rdynamic" dl pthread util multipy c10 torch_cpu) +add_executable(movable_example path_env/path_env.cpp) +target_link_libraries(path_env PUBLIC "-Wl,--no-as-needed -rdynamic" dl pthread util multipy c10 torch_cpu) + diff --git a/examples/movable_example/movable_example.cpp b/examples/movable_example/movable_example.cpp index c260c44b..b074cb13 100644 --- a/examples/movable_example/movable_example.cpp +++ b/examples/movable_example/movable_example.cpp @@ -13,7 +13,6 @@ int main(int argc, const char* argv[]) { try { // Load the model from the torch.package. auto I = m.acquireOne(); - std::vector constructor_inputs; auto model_obj = I.global("torch.nn", "Conv2d")({6, 2, 2, 1}); auto rObj = m.createMovable(model_obj, &I); auto I2 = m.acquireOne(); diff --git a/examples/path_env/path_env.cpp b/examples/path_env/path_env.cpp new file mode 100644 index 00000000..e4ee569d --- /dev/null +++ b/examples/path_env/path_env.cpp @@ -0,0 +1,32 @@ +// Basic example of using `ReplicatedObject` in `torch::deploy`. +#include +#include +#include +#include + +#include +#include + +int main(int argc, const char* argv[]) { + torch::deploy::InterpreterManager m(4); + // Start an interpreter manager governing 4 embedded interpreters. + std::shared_ptr env = + std::make_shared( + std::getenv("PATH_TO_EXTERN_PYTHON_PACKAGES") // Ensure to set this environment variable (e.g. /home/user/anaconda3/envs/multipy-example/lib/python3.8/site-packages) + ); + + try { + // Load the model from the torch.package. + auto I = m.acquireOne(); + auto model_obj = I.global("torch.nn", "Conv2d")({6, 2, 2, 1}); + at::Tensor output = model_obj(inputs).toIValue().toTensor(); + std::cout << output.slice(/*dim=*/1, /*start=*/0, /*end=*/5) << '\n'; + + } catch (const c10::Error& e) { + std::cerr << "error creating movable\n"; + std::cerr << e.msg(); + return -1; + } + + std::cout << "ok\n"; +}