mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
// |
|
// Copyright © 2017 Arm Ltd. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
// |
|
#pragma once |
|
|
|
#include "armnn/Types.hpp" |
|
#include "armnn/NetworkFwd.hpp" |
|
#include "armnn/Tensor.hpp" |
|
#include "armnn/INetwork.hpp" |
|
|
|
#include <memory> |
|
#include <map> |
|
#include <vector> |
|
|
|
namespace armnnDeserializer |
|
{ |
|
struct BindingPointInfo |
|
{ |
|
armnn::LayerBindingId m_BindingId; |
|
armnn::TensorInfo m_TensorInfo; |
|
}; |
|
|
|
class IDeserializer; |
|
using IDeserializerPtr = std::unique_ptr<IDeserializer, void(*)(IDeserializer* parser)>; |
|
|
|
class IDeserializer |
|
{ |
|
public: |
|
static IDeserializer* CreateRaw(); |
|
static IDeserializerPtr Create(); |
|
static void Destroy(IDeserializer* parser); |
|
|
|
/// Create an input network from binary file contents |
|
armnn::INetworkPtr CreateNetworkFromBinary(const std::vector<uint8_t>& binaryContent); |
|
|
|
/// Create an input network from a binary input stream |
|
armnn::INetworkPtr CreateNetworkFromBinary(std::istream& binaryContent); |
|
|
|
/// Retrieve binding info (layer id and tensor info) for the network input identified by |
|
/// the given layer name and layers id |
|
BindingPointInfo GetNetworkInputBindingInfo(unsigned int layerId, const std::string& name) const; |
|
|
|
/// Retrieve binding info (layer id and tensor info) for the network output identified by |
|
/// the given layer name and layers id |
|
BindingPointInfo GetNetworkOutputBindingInfo(unsigned int layerId, const std::string& name) const; |
|
|
|
private: |
|
IDeserializer(); |
|
~IDeserializer(); |
|
|
|
class DeserializerImpl; |
|
std::unique_ptr<DeserializerImpl> pDeserializerImpl; |
|
}; |
|
} //namespace armnnDeserializer
|