Reuse make_executable_network in ImportNetwork (#1869)

* Reuse make_executable_network for ImportNetwork

* make_executable_network returns ExecutableNetwork cpp wrapper
This commit is contained in:
Ilya Lavrenov
2020-08-20 18:34:19 +03:00
committed by GitHub
parent d92cec16fc
commit 5d328b94a6
6 changed files with 19 additions and 29 deletions

View File

@@ -131,13 +131,9 @@ InferenceEngine::ExecutableNetwork Plugin::ImportNetworkImpl(std::istream& model
// ..
auto cfg = Configuration(config, exportedCfg);
IExecutableNetwork::Ptr executableNetwork;
auto exec_network_impl = std::make_shared<ExecutableNetwork>(model, cfg, std::static_pointer_cast<Plugin>(shared_from_this()));
executableNetwork.reset(new ExecutableNetworkBase<ExecutableNetworkInternal>(exec_network_impl),
[](InferenceEngine::details::IRelease *p) {p->Release(); });
return InferenceEngine::ExecutableNetwork{ executableNetwork };
return make_executable_network(exec_network_impl);
}
// ! [plugin:import_network_impl]

View File

@@ -59,7 +59,7 @@ public:
updated_config.UpdateFromMap(config);
auto plg = std::make_shared<GNAPlugin>(updated_config.key_config_map);
plgPtr = plg;
return InferenceEngine::ExecutableNetwork{ make_executable_network(std::make_shared<GNAExecutableNetwork>(networkModel, plg)) };
return make_executable_network(std::make_shared<GNAExecutableNetwork>(networkModel, plg));
}
using InferenceEngine::InferencePluginInternal::ImportNetwork;

View File

@@ -86,12 +86,8 @@ ExecutableNetwork Engine::ImportNetworkImpl(std::istream& heteroModel, const Con
THROW_IE_EXCEPTION << "Please, work with HETERO device via InferencEngine::Core object";
}
IExecutableNetwork::Ptr executableNetwork;
executableNetwork.reset(new ExecutableNetworkBase<ExecutableNetworkInternal>(
std::make_shared<HeteroExecutableNetwork>(heteroModel, mergeConfigs(_config, config), this)),
[](InferenceEngine::details::IRelease *p) {p->Release();});
return ExecutableNetwork{executableNetwork};
return make_executable_network(std::make_shared<HeteroExecutableNetwork>(heteroModel,
mergeConfigs(_config, config), this));
}
Engine::Configs Engine::GetSupportedConfig(const Engine::Configs& config, const std::string & deviceName) const {

View File

@@ -9,7 +9,7 @@
#pragma once
#include <ie_iexecutable_network.hpp>
#include <cpp/ie_executable_network.hpp>
#include <cpp_interfaces/base/ie_memory_state_base.hpp>
#include <cpp_interfaces/interface/ie_imemory_state_internal.hpp>
#include <map>
@@ -111,11 +111,11 @@ private:
};
template <class T>
inline typename ExecutableNetworkBase<T>::Ptr make_executable_network(std::shared_ptr<T> impl) {
inline typename InferenceEngine::ExecutableNetwork make_executable_network(std::shared_ptr<T> impl) {
typename ExecutableNetworkBase<T>::Ptr net(new ExecutableNetworkBase<T>(impl), [](IExecutableNetwork* p) {
p->Release();
});
return net;
return InferenceEngine::ExecutableNetwork(net);
}
} // namespace InferenceEngine

View File

@@ -161,9 +161,7 @@ InferenceEngine::ExecutableNetwork Engine::ImportNetwork(
std::make_shared<ExecutableNetwork>(
model, _mvnc, _devicePool, parsedConfigCopy, GetCore());
return InferenceEngine::ExecutableNetwork{IExecutableNetwork::Ptr(
new ExecutableNetworkBase<ExecutableNetworkInternal>(executableNetwork),
[](ie::details::IRelease *p) {p->Release();})};
return make_executable_network(executableNetwork);
}
IExecutableNetwork::Ptr Engine::ImportNetwork(

View File

@@ -29,7 +29,7 @@ class MemoryStateTests : public ::testing::Test {
};
TEST_F(MemoryStateTests, ExecutableNetworkCanConvertOneMemoryStateFromCppToAPI) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn(1);
toReturn[0] = mockMemoryStateInternal;
@@ -40,7 +40,7 @@ TEST_F(MemoryStateTests, ExecutableNetworkCanConvertOneMemoryStateFromCppToAPI)
}
TEST_F(MemoryStateTests, ExecutableNetworkCanConvertZeroMemoryStateFromCppToAPI) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
EXPECT_CALL(*mockExeNetworkInternal.get(), QueryState()).WillOnce(Return(toReturn));
@@ -50,7 +50,7 @@ TEST_F(MemoryStateTests, ExecutableNetworkCanConvertZeroMemoryStateFromCppToAPI)
}
TEST_F(MemoryStateTests, ExecutableNetworkCanConvert2MemoryStatesFromCPPtoAPI) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
toReturn.push_back(mockMemoryStateInternal);
@@ -62,7 +62,7 @@ TEST_F(MemoryStateTests, ExecutableNetworkCanConvert2MemoryStatesFromCPPtoAPI) {
}
TEST_F(MemoryStateTests, MemoryStatePropagatesReset) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -74,7 +74,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesReset) {
}
TEST_F(MemoryStateTests, MemoryStatePropagatesExceptionsFromReset) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -86,7 +86,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesExceptionsFromReset) {
}
TEST_F(MemoryStateTests, MemoryStatePropagatesGetName) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -98,7 +98,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesGetName) {
}
TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithZeroLen) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -114,7 +114,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithZeroLen) {
TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithLenOfOne) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -130,7 +130,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithLenOfOne) {
}
TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithLenOfTwo) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
toReturn.push_back(mockMemoryStateInternal);
@@ -146,7 +146,7 @@ TEST_F(MemoryStateTests, MemoryStatePropagatesGetNameWithLenOfTwo) {
}
TEST_F(MemoryStateTests, MemoryStateCanPropagateSetState) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
Blob::Ptr saver;
toReturn.push_back(mockMemoryStateInternal);
@@ -164,7 +164,7 @@ TEST_F(MemoryStateTests, MemoryStateCanPropagateSetState) {
}
TEST_F(MemoryStateTests, MemoryStateCanPropagateGetLastState) {
auto net = ExecutableNetwork(make_executable_network(mockExeNetworkInternal));
auto net = make_executable_network(mockExeNetworkInternal);
std::vector<IMemoryStateInternal::Ptr> toReturn;
float data[] = {123, 124, 125};