ANN  0.1.1.5
A library containing multiple neural network models written in C
batch.c
Go to the documentation of this file.
1 #include <stdlib.h>
5 
7 
8 
10 {
11  if (net == NULL) return;
12  for(size_t l = 0; l < net->size; ++l)
13  for(size_t n = 0; n < net->layers[l]->size; ++n)
14  {
15  net->layers[l]->neurons[n]->wdelta = calloc(net->layers[l]->neurons[n]->size, sizeof(double));
16  net->layers[l]->neurons[n]->lastdw = calloc(net->layers[l]->neurons[n]->size, sizeof(double));
17  net->layers[l]->neurons[n]->bdelta = 0;
18  net->layers[l]->neurons[n]->dsum = 0;
19  }
20 }
21 
22 
24 {
25  if (net == NULL) return;
26  for(size_t l = 0; l < net->size; ++l)
27  for(size_t n = 0; n < net->layers[l]->size; ++n)
28  if (net->layers[l]->neurons[n]->wdelta != NULL)
29  {
30  free(net->layers[l]->neurons[n]->wdelta);
31  net->layers[l]->neurons[n]->wdelta = NULL;
32  free(net->layers[l]->neurons[n]->lastdw);
33  net->layers[l]->neurons[n]->lastdw = NULL;
34  net->layers[l]->neurons[n]->bdelta = 0;
35  }
36 }
37 
39 {
40  if (net == NULL) return;
41  for(size_t l = 0; l < net->size; ++l)
42  for(size_t n = 0; n < net->layers[l]->size; ++n)
43  {
44  for(size_t i = 0; i < net->layers[l]->neurons[n]->size; ++i)
45  if (net->layers[l]->neurons[n]->wdelta != NULL)
46  net->layers[l]->neurons[n]->wdelta[i] = 0;
47  net->layers[l]->neurons[n]->bdelta = 0;
48  net->layers[l]->neurons[n]->dsum = 0;
49  }
50 }
51 
53 {
54  if (net == NULL) return;
55  for(size_t l = 0; l < net->size; ++l)
56  for(size_t n = 0; n < net->layers[l]->size; ++n)
57  {
58  for(size_t i = 0; i < net->layers[l]->neurons[n]->size; ++i)
59  {
60  if (net->layers[l]->neurons[n]->wdelta != NULL)
61  net->layers[l]->neurons[n]->wdelta[i] = 0;
62  if (net->layers[l]->neurons[n]->lastdw != NULL)
63  net->layers[l]->neurons[n]->lastdw[i] = 0;
64  }
65  net->layers[l]->neurons[n]->bdelta = 0;
66  }
67 }
double dsum
Definition: neuron.h:40
double bdelta
Definition: neuron.h:40
PCFNN_LAYER.
struct PCFNN_LAYER ** layers
Definition: network.h:29
void PCFNN_NETWORK_clear_batch_all(struct PCFNN_NETWORK *net)
Definition: batch.c:52
size_t size
Definition: layer.h:55
size_t size
Definition: network.h:28
PCFNN_NEURON.
PCFNN_NETWORK.
double * lastdw
Definition: neuron.h:41
struct PCFNN_NEURON ** neurons
Definition: layer.h:56
double * wdelta
Definition: neuron.h:41
PCFNN_BATCH.
Network unit.
Definition: network.h:27
size_t size
Definition: neuron.h:36
void PCFNN_NETWORK_clear_batch(struct PCFNN_NETWORK *net)
Partially clear batch data of the network net.
Definition: batch.c:38
void PCFNN_NETWORK_free_batch(struct PCFNN_NETWORK *net)
Free all memory allocation for the batch of the network net.
Definition: batch.c:23
void PCFNN_NETWORK_init_batch(struct PCFNN_NETWORK *net)
Initialize batch for the network net.
Definition: batch.c:9