ArmNN
 20.08
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 344 of file Serializer.hpp.

Constructor & Destructor Documentation

◆ Serializer()

Serializer ( )
inline

Definition at line 347 of file Serializer.hpp.

347 {}

◆ ~Serializer()

~Serializer ( )
inline

Definition at line 348 of file Serializer.hpp.

348 {}

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 1751 of file Serializer.cpp.

References armnn::numeric_cast().

Referenced by BOOST_AUTO_TEST_CASE().

1752 {
1753  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
1754 
1755  auto bytesToWrite = boost::numeric_cast<std::streamsize>(fbBuilder.GetSize());
1756  stream.write(reinterpret_cast<const char*>(fbBuilder.GetBufferPointer()), bytesToWrite);
1757  return !stream.bad();
1758 }
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:33

◆ 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 1733 of file Serializer.cpp.

References INetwork::Accept().

Referenced by BOOST_AUTO_TEST_CASE().

1734 {
1735  // Iterate through to network
1736  inNetwork.Accept(m_SerializerVisitor);
1737  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
1738 
1739  // Create FlatBuffer SerializedGraph
1740  auto serializedGraph = serializer::CreateSerializedGraph(
1741  fbBuilder,
1742  fbBuilder.CreateVector(m_SerializerVisitor.GetSerializedLayers()),
1743  fbBuilder.CreateVector(m_SerializerVisitor.GetInputIds()),
1744  fbBuilder.CreateVector(m_SerializerVisitor.GetOutputIds()),
1745  m_SerializerVisitor.GetVersionTable());
1746 
1747  // Serialize the graph
1748  fbBuilder.Finish(serializedGraph);
1749 }
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: