OpenNN
Open-source neural networks library
Loading...
Searching...
No Matches
back_propagation.h
Go to the documentation of this file.
1// OpenNN: Open Neural Networks Library
2// www.opennn.net
3//
4// B A C K P R O P A G A T I O N H E A D E R
5//
6// Artificial Intelligence Techniques SL
7// artelnics@artelnics.com
8
9#pragma once
10
11#include "tensor_utilities.h"
12
13namespace opennn
14{
15
16class Loss;
17class NeuralNetwork;
18
20{
22 size_t port;
23};
24
26{
27 BackPropagation(const Index = 0, Loss* = nullptr);
28
29 virtual ~BackPropagation() = default;
30
31 void set(const Index = 0, Loss* = nullptr);
32
33 void accumulate_output_deltas(size_t layer_index);
34
36
38 vector<vector<TensorView>> gradient_views;
39
41 vector<vector<vector<TensorView>>> delta_views;
42
45 vector<vector<BackwardEdge>> backward_edges;
46
48
49 void print() const;
50
51 Index batch_size = 0;
52
53 Loss* loss = nullptr;
54
55 float error = 0.0f;
56 float accuracy = 0.0f;
57 float loss_value = 0.0f;
59
61
62#ifdef OPENNN_HAS_CUDA
63
64 Buffer errors_device{Device::CUDA};
65
66 TensorView output_deltas_view_device;
67
68#endif
69};
70
71}
72
73// OpenNN: Open Neural Networks Library.
74// Copyright(C) 2005-2026 Artificial Intelligence Techniques, SL.
75// Licensed under the GNU Lesser General Public License v2.1 or later.
Trainable loss function attached to a NeuralNetwork and a Dataset.
Definition loss.h:44
Stack of Layers forming a trainable model.
Definition neural_network.h:44
Definition adaptive_moment_estimation.h:19
@ CUDA
Definition configuration.h:16
vector< Shape > per_layer_output_delta_shapes
Definition back_propagation.h:44
vector< vector< TensorView > > gradient_views
Definition back_propagation.h:38
Buffer gradient
Definition back_propagation.h:37
Shape output_delta_dimensions
Definition back_propagation.h:60
virtual ~BackPropagation()=default
vector< vector< BackwardEdge > > backward_edges
Definition back_propagation.h:45
BackPropagation(const Index=0, Loss *=nullptr)
Index active_tokens_count
Definition back_propagation.h:58
vector< vector< vector< TensorView > > > delta_views
Definition back_propagation.h:41
void accumulate_output_deltas(size_t layer_index)
NeuralNetwork * neural_network
Definition back_propagation.h:35
float accuracy
Definition back_propagation.h:56
Index batch_size
Definition back_propagation.h:51
float loss_value
Definition back_propagation.h:57
Buffer per_layer_output_deltas
Definition back_propagation.h:43
float error
Definition back_propagation.h:55
void set(const Index=0, Loss *=nullptr)
Buffer backward
Definition back_propagation.h:40
TensorView get_output_deltas() const
Loss * loss
Definition back_propagation.h:53
Definition back_propagation.h:20
size_t port
Definition back_propagation.h:22
size_t consumer_idx
Definition back_propagation.h:21
Definition tensor_utilities.h:144
Definition tensor_utilities.h:46
Definition tensor_utilities.h:236