ArmNN  NotReleased
ICaffeParser.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/Types.hpp"
8 #include "armnn/NetworkFwd.hpp"
9 #include "armnn/Tensor.hpp"
10 #include "armnn/INetwork.hpp"
11 
12 #include <memory>
13 #include <map>
14 #include <vector>
15 
17 {
18 
20 
21 class ICaffeParser;
22 using ICaffeParserPtr = std::unique_ptr<ICaffeParser, void(*)(ICaffeParser* parser)>;
23 
25 {
26 public:
27  static ICaffeParser* CreateRaw();
28  static ICaffeParserPtr Create();
29  static void Destroy(ICaffeParser* parser);
30 
33  const char* graphFile,
34  const std::map<std::string, armnn::TensorShape>& inputShapes,
35  const std::vector<std::string>& requestedOutputs) = 0;
36 
39  const char* graphFile,
40  const std::map<std::string, armnn::TensorShape>& inputShapes,
41  const std::vector<std::string>& requestedOutputs) = 0;
42 
45  const char* protoText,
46  const std::map<std::string, armnn::TensorShape>& inputShapes,
47  const std::vector<std::string>& requestedOutputs) = 0;
48 
50  virtual BindingPointInfo GetNetworkInputBindingInfo(const std::string& name) const = 0;
51 
53  virtual BindingPointInfo GetNetworkOutputBindingInfo(const std::string& name) const = 0;
54 
55 protected:
56  virtual ~ICaffeParser() {};
57 };
58 
59 }
virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(const char *graphFile, const std::map< std::string, armnn::TensorShape > &inputShapes, const std::vector< std::string > &requestedOutputs)=0
Create the network from a protobuf binary file on the disk.
std::pair< armnn::LayerBindingId, armnn::TensorInfo > BindingPointInfo
Definition: Tensor.hpp:146
std::unique_ptr< ICaffeParser, void(*)(ICaffeParser *parser)> ICaffeParserPtr
static ICaffeParserPtr Create()
static ICaffeParser * CreateRaw()
static void Destroy(ICaffeParser *parser)
virtual armnn::INetworkPtr CreateNetworkFromTextFile(const char *graphFile, const std::map< std::string, armnn::TensorShape > &inputShapes, const std::vector< std::string > &requestedOutputs)=0
Create the network from a protobuf text file on the disk.
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:85
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...
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 ...
virtual armnn::INetworkPtr CreateNetworkFromString(const char *protoText, const std::map< std::string, armnn::TensorShape > &inputShapes, const std::vector< std::string > &requestedOutputs)=0
Create the network directly from protobuf text in a string. Useful for debugging/testin.g.