ArmNN
 21.02
IDeserializer.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 {
19 {
22 };
23 
24 class IDeserializer;
25 using IDeserializerPtr = std::unique_ptr<IDeserializer, void(*)(IDeserializer* parser)>;
26 
28 {
29 public:
30  static IDeserializer* CreateRaw();
31  static IDeserializerPtr Create();
32  static void Destroy(IDeserializer* parser);
33 
34  /// Create an input network from binary file contents
35  armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent);
36 
37  /// Create an input network from a binary input stream
38  armnn::INetworkPtr CreateNetworkFromBinary(std::istream& binaryContent);
39 
40  /// Retrieve binding info (layer id and tensor info) for the network input identified by
41  /// the given layer name and layers id
42  BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId, const std::string& name) const;
43 
44  /// Retrieve binding info (layer id and tensor info) for the network output identified by
45  /// the given layer name and layers id
46  BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId, const std::string& name) const;
47 
48 private:
49  IDeserializer();
50  ~IDeserializer();
51 
52  class DeserializerImpl;
53  std::unique_ptr<DeserializerImpl> pDeserializerImpl;
54 };
55 } //namespace armnnDeserializer
int LayerBindingId
Type of identifiers for bindable layers (inputs, outputs).
Definition: Types.hpp:210
std::unique_ptr< IDeserializer, void(*)(IDeserializer *parser)> IDeserializerPtr
std::unique_ptr< INetwork, void(*)(INetwork *network)> INetworkPtr
Definition: INetwork.hpp:173