Loading...
Searching...
No Matches
image_dataset.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-only
2// Copyright (C) 2026 Artificial Intelligence Techniques, S.L. and Roberto López González
3
4#pragma once
5
10
11namespace opennn
12{
13
26
27class ImageDataset : public Dataset
28{
29
30public:
31
32 ImageDataset() = default;
33 ImageDataset(const filesystem::path&);
34 ImageDataset(const filesystem::path&, const Shape&);
35
36 Index get_channels_number() const { return input_shape[2]; }
37
39 void set_input_scaling(const vector<Descriptives>&,
40 const vector<ScalerMethod>&,
41 float,
42 float);
43
46 const FeatureScaling&,
47 Index) override;
48 void clear_training_scaling() noexcept override;
49
51
52 void enable_device_residency() override;
53
55
56 void from_JSON(const JsonDocument&) override;
57 void to_JSON(JsonWriter&) const override;
58
59 void fill_inputs(const vector<Index>&,
60 const vector<Index>&,
61 float*,
63 ColumnContiguity column_contiguity = ColumnContiguity::Unknown) const override;
64
65 void fill_targets(const vector<Index>&,
66 const vector<Index>&,
67 float*,
69 ColumnContiguity column_contiguity = ColumnContiguity::Unknown) const override;
70
71 void augment_inputs(span<float>, Index) const;
72
73private:
74
75 void write_image_cache(const vector<filesystem::path>&, const string& trailer) const;
76
77 ImageAugmentationPolicy augmentation_policy;
78
79 vector<float> input_scale;
80 vector<float> input_offset;
81
82 filesystem::path cache_path;
83 mutable FileReader cache_reader;
84
85 Shape requested_input_shape;
86
87 uint64_t pixel_number = 0;
88 uint32_t classes_number = 0;
89 vector<int32_t> sample_labels;
90};
91
92}
Dataset()=default
Shape input_shape
Definition dataset.h:358
Definition io_utilities.h:30
void augment_inputs(span< float >, Index) const
void set_input_scaling(const vector< Descriptives > &, const vector< ScalerMethod > &, float, float)
void to_JSON(JsonWriter &) const override
ImageDataset(const filesystem::path &)
void fill_inputs(const vector< Index > &, const vector< Index > &, float *, FillMode, ColumnContiguity column_contiguity=ColumnContiguity::Unknown) const override
void fill_targets(const vector< Index > &, const vector< Index > &, float *, FillMode, ColumnContiguity column_contiguity=ColumnContiguity::Unknown) const override
Index get_channels_number() const
Definition image_dataset.h:36
void enable_device_residency() override
void set_augmentation_policy(const ImageAugmentationPolicy &)
ImageDataset(const filesystem::path &, const Shape &)
void clear_training_scaling() noexcept override
void from_JSON(const JsonDocument &) override
VectorI calculate_target_distribution() const override
FeatureScaling prepare_training_scaling(VariableRole, const FeatureScaling &, Index) override
Definition json.h:75
Definition json.h:92
Definition configuration.h:10
FillMode
Definition batch.h:20
VariableRole
Definition variable.h:72
ColumnContiguity
Definition tensor_types.h:747
@ Unknown
Definition tensor_types.h:747
Eigen::Matrix< Index, Eigen::Dynamic, 1 > VectorI
Definition opennn_types.h:336
Definition scaling.h:12
Definition image_dataset.h:15
float rotation_minimum
Definition image_dataset.h:19
bool enabled
Definition image_dataset.h:16
bool reflection_axis_x
Definition image_dataset.h:17
float rotation_maximum
Definition image_dataset.h:20
bool reflection_axis_y
Definition image_dataset.h:18
float vertical_translation_maximum
Definition image_dataset.h:24
float horizontal_translation_maximum
Definition image_dataset.h:22
float vertical_translation_minimum
Definition image_dataset.h:23
float horizontal_translation_minimum
Definition image_dataset.h:21
Definition tensor_types.h:172