ArmNN
 20.11
Serializer Class Reference

#include <Serializer.hpp>

Inheritance diagram for Serializer:
ISerializer

Public Member Functions

 Serializer ()
 
 ~Serializer ()
 
void Serialize (const armnn::INetwork &inNetwork) override
 Serializes the network to ArmNN SerializedGraph. More...
 
bool SaveSerializedToStream (std::ostream &stream) override
 Serializes the SerializedGraph to the stream. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from ISerializer
static ISerializerCreateRaw ()
 
static ISerializerPtr Create ()
 
static void Destroy (ISerializer *serializer)
 
- Protected Member Functions inherited from ISerializer
virtual ~ISerializer ()
 

Detailed Description

Definition at line 348 of file Serializer.hpp.

Constructor & Destructor Documentation

◆ Serializer()

Serializer ( )
inline

Definition at line 351 of file Serializer.hpp.

351 {}

◆ ~Serializer()

~Serializer ( )
inline

Definition at line 352 of file Serializer.hpp.

352 {}

Member Function Documentation

◆ SaveSerializedToStream()

bool SaveSerializedToStream ( std::ostream &  stream)
overridevirtual

Serializes the SerializedGraph to the stream.

Parameters
[stream]the stream to save to
Returns
true if graph is Serialized to the Stream, false otherwise

Implements ISerializer.

Definition at line 1766 of file Serializer.cpp.

References armnn::numeric_cast().

Referenced by BOOST_AUTO_TEST_CASE().

1767 {
1768  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
1769 
1770  auto bytesToWrite = armnn::numeric_cast<std::streamsize>(fbBuilder.GetSize());
1771  stream.write(reinterpret_cast<const char*>(fbBuilder.GetBufferPointer()), bytesToWrite);
1772  return !stream.bad();
1773 }
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
Definition: Serializer.hpp:27
std::enable_if_t< std::is_unsigned< Source >::value &&std::is_unsigned< Dest >::value, Dest > numeric_cast(Source source)
Definition: NumericCast.hpp:35

◆ Serialize()

void Serialize ( const armnn::INetwork inNetwork)
overridevirtual

Serializes the network to ArmNN SerializedGraph.

Parameters
[in]inNetworkThe network to be serialized.

Implements ISerializer.

Definition at line 1748 of file Serializer.cpp.

References INetwork::Accept().

Referenced by BOOST_AUTO_TEST_CASE().

1749 {
1750  // Iterate through to network
1751  inNetwork.Accept(m_SerializerVisitor);
1752  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
1753 
1754  // Create FlatBuffer SerializedGraph
1755  auto serializedGraph = serializer::CreateSerializedGraph(
1756  fbBuilder,
1757  fbBuilder.CreateVector(m_SerializerVisitor.GetSerializedLayers()),
1758  fbBuilder.CreateVector(m_SerializerVisitor.GetInputIds()),
1759  fbBuilder.CreateVector(m_SerializerVisitor.GetOutputIds()),
1760  m_SerializerVisitor.GetVersionTable());
1761 
1762  // Serialize the graph
1763  fbBuilder.Finish(serializedGraph);
1764 }
std::vector< int > & GetOutputIds()
Definition: Serializer.hpp:37
flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable()
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
Definition: Serializer.hpp:27
std::vector< int > & GetInputIds()
Definition: Serializer.hpp:32
std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > & GetSerializedLayers()
Definition: Serializer.hpp:42
virtual void Accept(ILayerVisitor &visitor) const =0

The documentation for this class was generated from the following files: