Loading...
Searching...
No Matches
pooling_layer_3d.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
9
10namespace opennn
11{
12
13class Pooling3d final : public Layer
14{
15public:
16
17 Pooling3d(const Shape& = {0, 0},
19 const string& = "sequence_pooling_layer");
20
21 Shape get_input_shape() const noexcept override { return {sequence_length, input_features}; }
22 Shape get_output_shape() const override;
23
24 Index get_sequence_length() const { return sequence_length; }
25 Index get_input_features() const { return input_features; }
26
27 PoolingMethod get_pooling_method() const { return pooling_method; }
28
29 vector<TensorSpec> get_forward_specs(Index) const override;
30
31 void set(const Shape&, const PoolingMethod&, const string&);
32
33 bool accepts_input_rank(Index rank) const override { return is_one_of(rank, 2); }
34
35 void apply_input_shape(const Shape& new_input_shape) override
36 {
37 set(new_input_shape, pooling_method, get_label());
38 }
39
41 void set_pooling_method(const string&);
42
43 void read_JSON_body(const Json*) override;
44 void write_JSON_body(JsonWriter&) const override;
45
46private:
47
48 Index sequence_length = 0;
49 Index input_features = 0;
50
52
53 Pool3dOperator pool3d;
54
55 enum Forward { Input, MaximalIndices, Output };
56};
57
58}
Definition json.h:92
Definition json.h:24
const string & get_label() const noexcept
Definition layer.h:51
Layer(LayerType type, Trainability trainability=Trainability::Trainable)
Definition layer.h:210
bool accepts_input_rank(Index rank) const override
Definition pooling_layer_3d.h:33
void set_pooling_method(PoolingMethod)
Shape get_input_shape() const noexcept override
Definition pooling_layer_3d.h:21
Pooling3d(const Shape &={0, 0}, const PoolingMethod &=PoolingMethod::MaxPooling, const string &="sequence_pooling_layer")
Index get_input_features() const
Definition pooling_layer_3d.h:25
Index get_sequence_length() const
Definition pooling_layer_3d.h:24
void set_pooling_method(const string &)
void set(const Shape &, const PoolingMethod &, const string &)
void apply_input_shape(const Shape &new_input_shape) override
Definition pooling_layer_3d.h:35
void write_JSON_body(JsonWriter &) const override
void read_JSON_body(const Json *) override
Shape get_output_shape() const override
PoolingMethod get_pooling_method() const
Definition pooling_layer_3d.h:27
vector< TensorSpec > get_forward_specs(Index) const override
Definition configuration.h:10
constexpr bool is_one_of(const T &value, const Candidates &... candidates)
Definition opennn_types.h:273
PoolingMethod
Definition pooling_layer.h:78
@ MaxPooling
Definition pooling_layer.h:79
Definition pool3d_operator.h:19
Definition tensor_types.h:172