diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/armnnDeserializeParser/DeserializeParser.cpp | 35 | ||||
-rw-r--r-- | src/armnnDeserializeParser/DeserializeParser.hpp | 19 |
2 files changed, 17 insertions, 37 deletions
diff --git a/src/armnnDeserializeParser/DeserializeParser.cpp b/src/armnnDeserializeParser/DeserializeParser.cpp index de9b1a98c7..9af5087cff 100644 --- a/src/armnnDeserializeParser/DeserializeParser.cpp +++ b/src/armnnDeserializeParser/DeserializeParser.cpp @@ -352,13 +352,6 @@ void IDeserializeParser::Destroy(IDeserializeParser* parser) delete parser; } -INetworkPtr DeserializeParser::CreateNetworkFromBinaryFile(const char* graphFile) -{ - ResetParser(); - m_Graph = LoadGraphFromFile(graphFile, m_FileContent); - return CreateNetworkFromGraph(); -} - INetworkPtr DeserializeParser::CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent) { ResetParser(); @@ -366,25 +359,11 @@ INetworkPtr DeserializeParser::CreateNetworkFromBinary(const std::vector<uint8_t return CreateNetworkFromGraph(); } -DeserializeParser::GraphPtr DeserializeParser::LoadGraphFromFile(const char* fileName, std::string& fileContent) +armnn::INetworkPtr DeserializeParser::CreateNetworkFromBinary(std::istream& binaryContent) { - if (fileName == nullptr) - { - throw InvalidArgumentException(boost::str(boost::format("Invalid (null) file name %1%") % - CHECK_LOCATION().AsString())); - } - boost::system::error_code errorCode; - boost::filesystem::path pathToFile(fileName); - if (!boost::filesystem::exists(pathToFile, errorCode)) - { - throw FileNotFoundException(boost::str(boost::format("Cannot find the file (%1%) errorCode: %2% %3%") % - fileName % - errorCode % - CHECK_LOCATION().AsString())); - } - std::ifstream file(fileName, std::ios::binary); - fileContent = std::string((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); - return LoadGraphFromBinary(reinterpret_cast<const uint8_t*>(fileContent.c_str()), fileContent.size()); + ResetParser(); + m_Graph = LoadGraphFromBinary(binaryContent); + return CreateNetworkFromGraph(); } DeserializeParser::GraphPtr DeserializeParser::LoadGraphFromBinary(const uint8_t* binaryContent, size_t len) @@ -406,6 +385,12 @@ DeserializeParser::GraphPtr DeserializeParser::LoadGraphFromBinary(const uint8_t return GetSerializedGraph(binaryContent); } +DeserializeParser::GraphPtr DeserializeParser::LoadGraphFromBinary(std::istream& binaryContent) +{ + std::string content((std::istreambuf_iterator<char>(binaryContent)), std::istreambuf_iterator<char>()); + return GetSerializedGraph(content.data()); +} + INetworkPtr DeserializeParser::CreateNetworkFromGraph() { m_Network = INetwork::Create(); diff --git a/src/armnnDeserializeParser/DeserializeParser.hpp b/src/armnnDeserializeParser/DeserializeParser.hpp index 666cbca33c..aee647c636 100644 --- a/src/armnnDeserializeParser/DeserializeParser.hpp +++ b/src/armnnDeserializeParser/DeserializeParser.hpp @@ -25,26 +25,25 @@ public: public: - /// Create the network from a flatbuffers binary file on disk - virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile) override; + /// Create an input network from binary file contents + armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent) override; - virtual armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent) override; + /// Create an input network from a binary input stream + armnn::INetworkPtr CreateNetworkFromBinary(std::istream& binaryContent) override; /// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name - virtual BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId, - const std::string& name) const override; + BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId, const std::string& name) const override; /// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name - virtual BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId, - const std::string& name) const override; + BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId, const std::string& name) const override; DeserializeParser(); ~DeserializeParser() {} public: // testable helpers - static GraphPtr LoadGraphFromFile(const char* fileName, std::string& fileContent); static GraphPtr LoadGraphFromBinary(const uint8_t* binaryContent, size_t len); + static GraphPtr LoadGraphFromBinary(std::istream& binaryContent); static TensorRawPtrVector GetInputs(const GraphPtr& graph, unsigned int layerIndex); static TensorRawPtrVector GetOutputs(const GraphPtr& graph, unsigned int layerIndex); static LayerBaseRawPtrVector GetGraphInputs(const GraphPtr& graphPtr); @@ -91,10 +90,6 @@ private: std::vector<LayerParsingFunction> m_ParserFunctions; std::string m_layerName; - /// This holds the data of the file that was read in from CreateNetworkFromBinaryFile - /// Needed for m_Graph to point to - std::string m_FileContent; - /// A mapping of an output slot to each of the input slots it should be connected to /// The outputSlot is from the layer that creates this tensor as one of its outputs /// The inputSlots are from the layers that use this tensor as one of their inputs |