libdl  0.0.1
Simple yet powerful deep learning
Loading...
Searching...
No Matches
dl::InitializerTensor< T > Struct Template Reference
Collaboration diagram for dl::InitializerTensor< T >:

Public Member Functions

 InitializerTensor (InitializerTensor< T > &&other) noexcept
 
 InitializerTensor (std::initializer_list< T > &&value) noexcept
 
 InitializerTensor (std::initializer_list< InitializerTensor > &&value) noexcept
 
 InitializerTensor (std::ranges::range auto range) noexcept
 

Public Attributes

std::vector< T > data
 
std::vector< size_t > shape
 

Detailed Description

template<typename T>
struct dl::InitializerTensor< T >

Definition at line 12 of file tensorptr.hpp.

Constructor & Destructor Documentation

◆ InitializerTensor() [1/4]

template<typename T >
dl::InitializerTensor< T >::InitializerTensor ( InitializerTensor< T > &&  other)
inlinenoexcept

Definition at line 20 of file tensorptr.hpp.

20: data(std::move(data)), shape(std::move(shape)) {}
T move(T... args)

◆ InitializerTensor() [2/4]

template<typename T >
dl::InitializerTensor< T >::InitializerTensor ( std::initializer_list< T > &&  value)
inlinenoexcept

Definition at line 21 of file tensorptr.hpp.

21: data(value), shape({value.size()}) {}

◆ InitializerTensor() [3/4]

template<typename T >
dl::InitializerTensor< T >::InitializerTensor ( std::initializer_list< InitializerTensor< T > > &&  value)
inlinenoexcept
Todo:
Check if all values have the same size

Definition at line 22 of file tensorptr.hpp.

22 : data(), shape() {
24 shape = {value.size()};
25 data.reserve(std::accumulate(value.begin(), value.end(), 0, [](size_t acc, auto& v) {
26 return acc + v.data.size();
27 }));
28 for (auto&& v : value) {
29 data.insert(data.end(), v.data.begin(), v.data.end());
30 }
31 shape.insert(shape.end(), std::begin(value.begin()->shape), std::end(value.begin()->shape));
32 }
T accumulate(T... args)
T insert(T... args)
T reserve(T... args)

◆ InitializerTensor() [4/4]

template<typename T >
dl::InitializerTensor< T >::InitializerTensor ( std::ranges::range auto  range)
inlinenoexcept

Definition at line 33 of file tensorptr.hpp.

34 : data(std::begin(range), std::end(range)), shape({data.size()}) {}

Member Data Documentation

◆ data

template<typename T >
std::vector<T> dl::InitializerTensor< T >::data

Definition at line 17 of file tensorptr.hpp.

◆ shape

template<typename T >
std::vector<size_t> dl::InitializerTensor< T >::shape

Definition at line 18 of file tensorptr.hpp.


The documentation for this struct was generated from the following file: