Loading...
Searching...
No Matches
combination_operator.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
7
8namespace opennn
9{
10
12{
13 Index input_features = 0;
14 Index output_features = 0;
15
17
18 bool use_bias = true;
19
21
23
24 bool tied_transposed = false;
25
28
29 bool fuse_input_relu = false;
31
32 bool emit_relu_mask = false;
33 mutable bool relu_mask_fusion_disabled = false;
34 optional<size_t> relu_mask_slot;
37
41
44
45 void set(Index, Index, Type new_compute_dtype = Type::FP32);
46
47 vector<TensorSpec> parameter_specs() const override;
48 vector<SlotQuantization> parameter_quantization() const override;
49 vector<ParameterSlot> parameter_slots() override;
50 void link_parameter_scales(span<const TensorView>) override;
51
52 bool owns_initializable_weights() const noexcept
53 {
54 return !weights.empty() && !tied_transposed;
55 }
56
57 void set_parameters_random() override;
58 void set_parameters_glorot() override;
59 void set_parameters_pytorch() override;
60
62 void back_propagate(ForwardPropagation&, BackPropagation&, size_t) const override;
63
64};
65
66}
Definition configuration.h:10
Type
Definition configuration.h:13
@ FP32
Definition configuration.h:13
ForwardPropagationMode
Definition forward_propagation.h:33
ActivationFunction
Definition configuration.h:39
@ Identity
Definition configuration.h:39
Definition back_propagation.h:19
Definition combination_operator.h:12
bool owns_initializable_weights() const noexcept
Definition combination_operator.h:52
void link_parameter_scales(span< const TensorView >) override
void set(Index, Index, Type new_compute_dtype=Type::FP32)
TensorView bias
Definition combination_operator.h:39
bool tied_transposed
Definition combination_operator.h:24
void set_parameters_pytorch() override
void set_parameters_glorot() override
TensorView weights
Definition combination_operator.h:38
vector< ParameterSlot > parameter_slots() override
Index input_relu_source_layer
Definition combination_operator.h:30
bool folds_input_delta_addend
Definition combination_operator.h:22
bool use_bias
Definition combination_operator.h:18
Index output_features
Definition combination_operator.h:14
bool emit_relu_mask
Definition combination_operator.h:32
void back_propagate(ForwardPropagation &, BackPropagation &, size_t) const override
const CombinationOperator * drelu_source
Definition combination_operator.h:35
TensorView weight_gradient
Definition combination_operator.h:42
vector< SlotQuantization > parameter_quantization() const override
void set_parameters_random() override
void forward_propagate(ForwardPropagation &, size_t, ForwardPropagationMode) override
Index drelu_source_layer
Definition combination_operator.h:36
bool relu_mask_fusion_disabled
Definition combination_operator.h:33
vector< TensorSpec > parameter_specs() const override
TensorView weight_scale
Definition combination_operator.h:40
TensorView bias_gradient
Definition combination_operator.h:43
ActivationFunction fused_activation
Definition combination_operator.h:16
Index input_features
Definition combination_operator.h:13
bool transposed_inference_active
Definition combination_operator.h:27
bool transposed_inference_preferred
Definition combination_operator.h:26
bool accumulate_input_delta
Definition combination_operator.h:20
optional< size_t > relu_mask_slot
Definition combination_operator.h:34
bool fuse_input_relu
Definition combination_operator.h:29
Definition forward_propagation.h:52
Definition operator.h:28
Definition tensor_types.h:540