NNData.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <chrono>
4 #include <limits>
5 #include <unordered_map>
6 #include <vector>
7 
8 #include "Buffer.hpp"
10 
11 namespace dai {
12 
16 class NNData : public Buffer {
17  static constexpr int DATA_ALIGNMENT = 64;
18  std::shared_ptr<RawBuffer> serialize() const override;
20 
21  // store the data
22  // uint8_t
23  std::unordered_map<std::string, std::vector<std::uint8_t>> u8Data;
24  // FP16
25  std::unordered_map<std::string, std::vector<std::uint16_t>> fp16Data;
26 
27  public:
31  NNData();
32  explicit NNData(std::shared_ptr<RawNNData> ptr);
33  virtual ~NNData() = default;
34 
35  // Expose
36  // uint8_t
42  NNData& setLayer(const std::string& name, std::vector<std::uint8_t> data);
43 
49  NNData& setLayer(const std::string& name, const std::vector<int>& data);
50 
51  // fp16
57  NNData& setLayer(const std::string& name, std::vector<float> data);
58 
64  NNData& setLayer(const std::string& name, std::vector<double> data);
65 
66  // getters
70  std::vector<std::string> getAllLayerNames() const;
71 
75  std::vector<TensorInfo> getAllLayers() const;
76 
83  bool getLayer(const std::string& name, TensorInfo& tensor) const;
84 
90  bool hasLayer(const std::string& name) const;
91 
98  bool getLayerDatatype(const std::string& name, TensorInfo::DataType& datatype) const;
99 
100  // uint8
106  std::vector<std::uint8_t> getLayerUInt8(const std::string& name) const;
107 
108  // fp16
114  std::vector<float> getLayerFp16(const std::string& name) const;
115 
116  // int32
122  std::vector<std::int32_t> getLayerInt32(const std::string& name) const;
123 
124  // first layer
129  std::vector<std::uint8_t> getFirstLayerUInt8() const;
130 
135  std::vector<float> getFirstLayerFp16() const;
136 
141  std::vector<std::int32_t> getFirstLayerInt32() const;
142 
146  NNData& setTimestamp(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> timestamp);
147 
151  NNData& setTimestampDevice(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> timestamp);
152 
156  NNData& setSequenceNum(int64_t sequenceNum);
157 };
158 
159 } // namespace dai
dai::NNData::getFirstLayerFp16
std::vector< float > getFirstLayerFp16() const
Definition: NNData.cpp:255
dai::NNData
Definition: NNData.hpp:16
dai::NNData::DATA_ALIGNMENT
static constexpr int DATA_ALIGNMENT
Definition: NNData.hpp:17
dai::NNData::rawNn
RawNNData & rawNn
Definition: NNData.hpp:19
dai::TensorInfo::DataType
DataType
Definition: TensorInfo.hpp:30
dai::NNData::setLayer
NNData & setLayer(const std::string &name, std::vector< std::uint8_t > data)
Definition: NNData.cpp:110
dai::NNData::NNData
NNData()
Definition: NNData.cpp:14
DAI_SPAN_NAMESPACE_NAME::detail::data
constexpr auto data(C &c) -> decltype(c.data())
Definition: span.hpp:177
dai::NNData::setTimestampDevice
NNData & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: NNData.cpp:277
dai::NNData::fp16Data
std::unordered_map< std::string, std::vector< std::uint16_t > > fp16Data
Definition: NNData.hpp:25
RawNNData.hpp
dai::NNData::serialize
std::shared_ptr< RawBuffer > serialize() const override
Definition: NNData.cpp:40
dai::NNData::getLayer
bool getLayer(const std::string &name, TensorInfo &tensor) const
Definition: NNData.cpp:151
dai::NNData::getLayerDatatype
bool getLayerDatatype(const std::string &name, TensorInfo::DataType &datatype) const
Definition: NNData.cpp:168
dai::TensorInfo
TensorInfo structure.
Definition: TensorInfo.hpp:12
dai::Buffer
Base message - buffer of binary data.
Definition: Buffer.hpp:13
dai::NNData::getLayerUInt8
std::vector< std::uint8_t > getLayerUInt8(const std::string &name) const
Definition: NNData.cpp:178
dai::NNData::setSequenceNum
NNData & setSequenceNum(int64_t sequenceNum)
Definition: NNData.cpp:281
dai::NNData::setTimestamp
NNData & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: NNData.cpp:273
dai::NNData::getAllLayerNames
std::vector< std::string > getAllLayerNames() const
Definition: NNData.cpp:139
dai::NNData::u8Data
std::unordered_map< std::string, std::vector< std::uint8_t > > u8Data
Definition: NNData.hpp:23
dai::NNData::~NNData
virtual ~NNData()=default
dai::NNData::hasLayer
bool hasLayer(const std::string &name) const
Definition: NNData.cpp:161
dai::NNData::getAllLayers
std::vector< TensorInfo > getAllLayers() const
Definition: NNData.cpp:147
dai::NNData::getLayerFp16
std::vector< float > getLayerFp16(const std::string &name) const
Definition: NNData.cpp:221
Buffer.hpp
dai
Definition: CameraExposureOffset.hpp:6
dai::RawNNData
RawNNData structure.
Definition: RawNNData.hpp:10
dai::NNData::getLayerInt32
std::vector< std::int32_t > getLayerInt32(const std::string &name) const
Definition: NNData.cpp:197
dai::NNData::getFirstLayerInt32
std::vector< std::int32_t > getFirstLayerInt32() const
Definition: NNData.cpp:264
dai::NNData::getFirstLayerUInt8
std::vector< std::uint8_t > getFirstLayerUInt8() const
Definition: NNData.cpp:245


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19