ArmNN
 23.05
IOnnxParser.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017,2022 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include <armnn/INetwork.hpp>
8 #include <armnn/Tensor.hpp>
9 
10 #include <memory>
11 #include <vector>
12 #include <map>
13 
14 namespace armnnOnnxParser
15 {
16 
18 
19 class OnnxParserImpl;
20 class IOnnxParser;
21 using IOnnxParserPtr = std::unique_ptr<IOnnxParser, void(*)(IOnnxParser* parser)>;
22 
24 {
25 public:
26  static IOnnxParser* CreateRaw();
27  static IOnnxParserPtr Create();
28  static void Destroy(IOnnxParser* parser);
29 
30  /// Create the network from a protobuf binary vector
31  armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent);
32 
33  /// Create the network from a protobuf binary vector, with inputShapes specified
34  armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent,
35  const std::map<std::string, armnn::TensorShape>& inputShapes);
36 
37  /// Create the network from a protobuf binary file on disk
38  armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile);
39 
40  /// Create the network from a protobuf text file on disk
41  armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile);
42 
43  /// Create the network directly from protobuf text in a string. Useful for debugging/testing
44  armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText);
45 
46  /// Create the network from a protobuf binary file on disk, with inputShapes specified
47  armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile,
48  const std::map<std::string, armnn::TensorShape>& inputShapes);
49 
50  /// Create the network from a protobuf text file on disk, with inputShapes specified
51  armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile,
52  const std::map<std::string, armnn::TensorShape>& inputShapes);
53 
54  /// Create the network directly from protobuf text in a string, with inputShapes specified.
55  /// Useful for debugging/testing
56  armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText,
57  const std::map<std::string, armnn::TensorShape>& inputShapes);
58 
59  /// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name
60  BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const;
61 
62  /// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name
63  BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const;
64 
65 private:
66  IOnnxParser();
67  ~IOnnxParser();
68 
69  std::unique_ptr<OnnxParserImpl> pOnnxParserImpl;
70  };
71 
72  }
armnnOnnxParser::IOnnxParser::CreateNetworkFromString
armnn::INetworkPtr CreateNetworkFromString(const std::string &protoText)
Create the network directly from protobuf text in a string. Useful for debugging/testing.
Definition: OnnxParser.cpp:69
armnnOnnxParser::IOnnxParser::GetNetworkInputBindingInfo
BindingPointInfo GetNetworkInputBindingInfo(const std::string &name) const
Retrieve binding info (layer id and tensor info) for the network input identified by the given layer ...
Definition: OnnxParser.cpp:93
armnnOnnxParser::IOnnxParser::CreateNetworkFromTextFile
armnn::INetworkPtr CreateNetworkFromTextFile(const char *graphFile)
Create the network from a protobuf text file on disk.
Definition: OnnxParser.cpp:64
armnnOnnxParser::IOnnxParser::Create
static IOnnxParserPtr Create()
Definition: OnnxParser.cpp:38
armnnOnnxParser::OnnxParserImpl
Definition: OnnxParser.hpp:25
INetwork.hpp
armnnOnnxParser::IOnnxParser::GetNetworkOutputBindingInfo
BindingPointInfo GetNetworkOutputBindingInfo(const std::string &name) const
Retrieve binding info (layer id and tensor info) for the network output identified by the given layer...
Definition: OnnxParser.cpp:98
armnnOnnxParser::IOnnxParser::CreateNetworkFromBinary
armnn::INetworkPtr CreateNetworkFromBinary(const std::vector< uint8_t > &binaryContent)
Create the network from a protobuf binary vector.
Definition: OnnxParser.cpp:53
armnnOnnxParser::IOnnxParser
Definition: IOnnxParser.hpp:23
Tensor.hpp
armnnOnnxParser::BindingPointInfo
armnn::BindingPointInfo BindingPointInfo
Definition: IOnnxParser.hpp:17
armnnOnnxParser::IOnnxParserPtr
std::unique_ptr< IOnnxParser, void(*)(IOnnxParser *parser)> IOnnxParserPtr
Definition: IOnnxParser.hpp:21
armnnOnnxParser
Definition: IOnnxParser.hpp:14
armnnOnnxParser::IOnnxParser::CreateRaw
static IOnnxParser * CreateRaw()
Definition: OnnxParser.cpp:33
armnnOnnxParser::IOnnxParser::CreateNetworkFromBinaryFile
armnn::INetworkPtr CreateNetworkFromBinaryFile(const char *graphFile)
Create the network from a protobuf binary file on disk.
Definition: OnnxParser.cpp:48
armnn::INetworkPtr
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:327
armnnOnnxParser::IOnnxParser::Destroy
static void Destroy(IOnnxParser *parser)
Definition: OnnxParser.cpp:43
armnn::BindingPointInfo
std::pair< armnn::LayerBindingId, armnn::TensorInfo > BindingPointInfo
Definition: Tensor.hpp:274