ArmNN
 20.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 IOnnxParser;
20 using IOnnxParserPtr = std::unique_ptr<IOnnxParser, void(*)(IOnnxParser* parser)>;
21 
23 {
24 public:
25  static IOnnxParser* CreateRaw();
26  static IOnnxParserPtr Create();
27  static void Destroy(IOnnxParser* parser);
28 
29  /// Create the network from a protobuf binary file on disk
30  virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(const char* graphFile) = 0;
31 
32  /// Create the network from a protobuf text file on disk
33  virtual armnn::INetworkPtr CreateNetworkFromTextFile(const char* graphFile) = 0;
34 
35  /// Create the network directly from protobuf text in a string. Useful for debugging/testing
36  virtual armnn::INetworkPtr CreateNetworkFromString(const std::string& protoText) = 0;
37 
38  /// Retrieve binding info (layer id and tensor info) for the network input identified by the given layer name
39  virtual BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const = 0;
40 
41  /// Retrieve binding info (layer id and tensor info) for the network output identified by the given layer name
42  virtual BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const = 0;
43 
44  protected:
45  virtual ~IOnnxParser() {};
46  };
47 
48  }
static IOnnxParser * CreateRaw()
Definition: OnnxParser.cpp:419
virtual armnn::INetworkPtr CreateNetworkFromTextFile(const char *graphFile)=0
Create the network from a protobuf text file on disk.
virtual BindingPointInfo GetNetworkInputBindingInfo(const std::string &name) const =0
Retrieve binding info (layer id and tensor info) for the network input identified by the given layer ...
static void Destroy(IOnnxParser *parser)
Definition: OnnxParser.cpp:429
virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(const char *graphFile)=0
Create the network from a protobuf binary file on disk.
std::pair< armnn::LayerBindingId, armnn::TensorInfo > BindingPointInfo
Definition: Tensor.hpp:146
static IOnnxParserPtr Create()
Definition: OnnxParser.cpp:424
virtual BindingPointInfo GetNetworkOutputBindingInfo(const std::string &name) const =0
Retrieve binding info (layer id and tensor info) for the network output identified by the given layer...
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:101
virtual armnn::INetworkPtr CreateNetworkFromString(const std::string &protoText)=0
Create the network directly from protobuf text in a string. Useful for debugging/testing.
armnn::BindingPointInfo BindingPointInfo
Definition: IOnnxParser.hpp:17
std::unique_ptr< IOnnxParser, void(*)(IOnnxParser *parser)> IOnnxParserPtr
Definition: IOnnxParser.hpp:20