ArmNN
 21.11
ISerializer::SerializerImpl Class Reference

#include <Serializer.hpp>

Public Member Functions

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

Detailed Description

Definition at line 343 of file Serializer.hpp.

Constructor & Destructor Documentation

◆ SerializerImpl()

SerializerImpl ( )
default

◆ ~SerializerImpl()

~SerializerImpl ( )
default

Member Function Documentation

◆ SaveSerializedToStream()

bool SaveSerializedToStream ( std::ostream &  stream)

Serializes the SerializedGraph to the stream.

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

Definition at line 2371 of file Serializer.cpp.

References armnn::numeric_cast().

2372 {
2373  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerStrategy.GetFlatBufferBuilder();
2374 
2375  auto bytesToWrite = armnn::numeric_cast<std::streamsize>(fbBuilder.GetSize());
2376  stream.write(reinterpret_cast<const char*>(fbBuilder.GetBufferPointer()), bytesToWrite);
2377  return !stream.bad();
2378 }
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
Definition: Serializer.hpp:36
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)

Serializes the network to ArmNN SerializedGraph.

Parameters
[in]inNetworkThe network to be serialized.

Definition at line 2352 of file Serializer.cpp.

References armnnSerializer::CreateSerializedGraph(), and INetwork::ExecuteStrategy().

2353 {
2354  // Iterate through to network
2355  inNetwork.ExecuteStrategy(m_SerializerStrategy);
2356  flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerStrategy.GetFlatBufferBuilder();
2357 
2358  // Create FlatBuffer SerializedGraph
2359  auto serializedGraph = serializer::CreateSerializedGraph(
2360  fbBuilder,
2361  fbBuilder.CreateVector(m_SerializerStrategy.GetSerializedLayers()),
2362  fbBuilder.CreateVector(m_SerializerStrategy.GetInputIds()),
2363  fbBuilder.CreateVector(m_SerializerStrategy.GetOutputIds()),
2364  m_SerializerStrategy.GetVersionTable());
2365 
2366  // Serialize the graph
2367  fbBuilder.Finish(serializedGraph);
2368 }
ARMNN_NO_DEPRECATE_WARN_END void ExecuteStrategy(IStrategy &strategy) const
Definition: Network.cpp:468
flatbuffers::FlatBufferBuilder & GetFlatBufferBuilder()
Definition: Serializer.hpp:36
std::vector< int > & GetInputIds()
Definition: Serializer.hpp:41
std::vector< int > & GetOutputIds()
Definition: Serializer.hpp:46
std::vector< flatbuffers::Offset< armnnSerializer::AnyLayer > > & GetSerializedLayers()
Definition: Serializer.hpp:51
flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > GetVersionTable()
flatbuffers::Offset< SerializedGraph > CreateSerializedGraph(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnnSerializer::AnyLayer >>> layers=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> inputIds=0, flatbuffers::Offset< flatbuffers::Vector< int32_t >> outputIds=0, flatbuffers::Offset< armnnSerializer::FeatureCompatibilityVersions > featureVersions=0)

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