Go to the documentation of this file.
5 #include <unordered_map>
10 #include "fp16/fp16.h"
20 return sizeof(uint16_t);
24 return sizeof(int8_t);
26 return sizeof(int32_t);
28 return sizeof(uint8_t);
46 for(
const auto& kv :
u8Data) {
60 const auto*
data =
reinterpret_cast<const std::uint8_t*
>(kv.second.data());
66 info.dataType = dataType;
67 info.numDimensions = 1;
68 info.dims.push_back(kv.second.size());
71 info.offset =
static_cast<unsigned int>(offset);
90 const auto*
data =
reinterpret_cast<const std::uint8_t*
>(kv.second.data());
96 info.dataType = dataType;
97 info.numDimensions = 1;
98 info.dims.push_back(kv.second.size());
100 info.name = kv.first;
101 info.offset =
static_cast<unsigned int>(offset);
115 u8Data[name] = std::vector<std::uint8_t>(
data.size());
116 for(
unsigned i = 0; i <
data.size(); i++) {
117 u8Data[name][i] =
static_cast<std::uint8_t
>(
data[i]);
124 fp16Data[name] = std::vector<std::uint16_t>(
data.size());
125 for(
unsigned i = 0; i <
data.size(); i++) {
131 fp16Data[name] = std::vector<std::uint16_t>(
data.size());
132 for(
unsigned i = 0; i <
data.size(); i++) {
133 fp16Data[name][i] = fp16_ieee_from_fp32_value(
static_cast<float>(
data[i]));
140 std::vector<std::string> names;
142 names.push_back(t.name);
163 if(tensor.name == name)
return true;
188 auto end = beg +
size;
205 std::size_t numElements =
size /
sizeof(std::int32_t);
207 std::vector<std::int32_t>
data;
208 data.reserve(numElements);
209 auto* pInt32Data =
reinterpret_cast<std::int32_t*
>(&
rawNn.
data[tensor.
offset]);
210 for(std::size_t i = 0; i < numElements; i++) {
211 data.push_back(pInt32Data[i]);
229 std::size_t numElements =
size / 2;
231 std::vector<float>
data;
232 data.reserve(numElements);
233 auto* pFp16Data =
reinterpret_cast<std::uint16_t*
>(&
rawNn.
data[tensor.
offset]);
234 for(std::size_t i = 0; i < numElements; i++) {
235 data.push_back(fp16_ieee_to_fp32_value(pFp16Data[i]));
std::vector< TensorInfo > tensors
std::vector< float > getFirstLayerFp16() const
static constexpr int DATA_ALIGNMENT
constexpr auto get(span< E, S > s) -> decltype(s[N])
NNData & setLayer(const std::string &name, std::vector< std::uint8_t > data)
void info(const FormatString &fmt, Args &&...args)
std::vector< unsigned > dims
constexpr auto data(C &c) -> decltype(c.data())
Buffer & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
constexpr auto size(const C &c) -> decltype(c.size())
Buffer & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
NNData & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
static std::size_t getTensorDataSize(const TensorInfo &tensor)
static std::size_t sizeofTensorInfoDataType(TensorInfo::DataType type)
std::unordered_map< std::string, std::vector< std::uint16_t > > fp16Data
std::shared_ptr< RawBuffer > serialize() const override
bool getLayer(const std::string &name, TensorInfo &tensor) const
bool getLayerDatatype(const std::string &name, TensorInfo::DataType &datatype) const
unsigned int numDimensions
Base message - buffer of binary data.
std::vector< std::uint8_t > getLayerUInt8(const std::string &name) const
NNData & setSequenceNum(int64_t sequenceNum)
std::vector< std::uint8_t > data
NNData & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
std::vector< std::string > getAllLayerNames() const
std::unordered_map< std::string, std::vector< std::uint8_t > > u8Data
std::vector< unsigned > strides
bool hasLayer(const std::string &name) const
std::shared_ptr< RawBuffer > raw
std::vector< TensorInfo > getAllLayers() const
std::vector< float > getLayerFp16(const std::string &name) const
std::vector< std::int32_t > getLayerInt32(const std::string &name) const
Buffer & setSequenceNum(int64_t sequenceNum)
std::vector< std::int32_t > getFirstLayerInt32() const
std::vector< std::uint8_t > getFirstLayerUInt8() const
depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19