ArmNN
 22.02
IOnnxParser.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 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 file on disk
31  armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile);
32 
33  /// Create the network from a protobuf text file on disk
34  armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile);
35 
36  /// Create the network directly from protobuf text in a string. Useful for debugging/testing
37  armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText);
38 
39  /// Create the network from a protobuf binary file on disk, with inputShapes specified
40  armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile,
41  const std::map<std::string, armnn::TensorShape>& inputShapes);
42 
43  /// Create the network from a protobuf text file on disk, with inputShapes specified
44  armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile,
45  const std::map<std::string, armnn::TensorShape>& inputShapes);
46 
47  /// Create the network directly from protobuf text in a string, with inputShapes specified.
48  /// Useful for debugging/testing
49  armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText,
50  const std::map<std::string, armnn::TensorShape>& inputShapes);
51 
52  /// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name
53  BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const;
54 
55  /// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name
56  BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const;
57 
58 private:
59  IOnnxParser();
60  ~IOnnxParser();
61 
62  std::unique_ptr<OnnxParserImpl> pOnnxParserImpl;
63  };
64 
65  }
static IOnnxParser * CreateRaw()
Definition: OnnxParser.cpp:33
armnn::INetworkPtr CreateNetworkFromString(const std::string &protoText)
Create the network directly from protobuf text in a string. Useful for debugging/testing.
Definition: OnnxParser.cpp:58
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:82
armnn::INetworkPtr CreateNetworkFromBinaryFile(const char *graphFile)
Create the network from a protobuf binary file on disk.
Definition: OnnxParser.cpp:48
armnn::INetworkPtr CreateNetworkFromTextFile(const char *graphFile)
Create the network from a protobuf text file on disk.
Definition: OnnxParser.cpp:53
static void Destroy(IOnnxParser *parser)
Definition: OnnxParser.cpp:43
std::pair< armnn::LayerBindingId, armnn::TensorInfo > BindingPointInfo
Definition: Tensor.hpp:274
static IOnnxParserPtr Create()
Definition: OnnxParser.cpp:38
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:87
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:241
armnn::BindingPointInfo BindingPointInfo
Definition: IOnnxParser.hpp:17
std::unique_ptr< IOnnxParser, void(*)(IOnnxParser *parser)> IOnnxParserPtr
Definition: IOnnxParser.hpp:21