libdl  0.0.1
Simple yet powerful deep learning
Loading...
Searching...
No Matches
memorydataloader.hpp
1#ifndef DL_LEARNING_DATALOADERS_MEMORYDATALOADER_HPP
2#define DL_LEARNING_DATALOADERS_MEMORYDATALOADER_HPP
3
4#include "../../utils/generic_iterator.hpp"
5#include "../dataloader.hpp"
6
7#include <vector>
8
9namespace dl {
10
11 template <typename>
13
14 template <typename R, typename... Args>
15 class MemoryDataloader<R(Args...)> : public Dataloader<R(Args...)> {
16 private:
17 using Instance = typename std::tuple<R, std::remove_reference_t<Args>...>;
18 using Iterator = typename dl::utils::GenericIterator<Instance>;
20
21 public:
22 explicit MemoryDataloader(std::vector<Instance> data) : data(data) {}
23 virtual ~MemoryDataloader() = default;
24
25 Iterator begin() override { return Iterator(data.begin()); }
26 Iterator end() override { return Iterator(data.end()); }
27 };
28
29} // namespace dl
30
31#endif
T begin(T... args)
Represents a generic iterator that can be initialized to hold any other class instance that satisfies...
T end(T... args)