16 #define MAX_CONVOLUTIONAL_FILTER 10 // check mechanism to avoid users defining wrong conv models
207 int calcStride(
int tgtWidth,
int filter,
int srcWidth);
Data structure attached to a node and pointing to another node as well as to a weight.
Definition: dnn.h:71
double errorSum
Definition: dnn.h:87
Network * createNetwork(int layerCount, LayerDefinition *layerDefs)
Creates the neural network based on a given array of layer definitions.
Definition: dnn.c:1372
unsigned long ByteSize
Definition: dnn.h:29
Weight nullWeight
Definition: dnn.h:135
int backwardConnCount
Definition: dnn.h:88
Variably-sized data structure defining a vector with "count" doubles.
Definition: mnist-utils.h:53
Utitlies for displaying details of processing the MNIST data set in the terminal screen.
Data structure defining a 3-dimensional vector used to define the size of a node map.
Definition: dnn.h:41
Node * nodePtr
Definition: dnn.h:72
int getNetworkClassification(Network *nn)
Returns the network's classification of the input image by choosing the node with the hightest output...
Definition: dnn.c:735
int filter
Definition: dnn.h:58
Layer layers[]
Definition: dnn.h:137
int height
Definition: dnn.h:43
ByteSize size
Definition: dnn.h:101
void feedInput(Network *nn, Vector *v)
Feeds some Vector data into the INPUT layer of the network.
Definition: dnn.c:710
ActFctType
Definition: dnn.h:32
int getLayerNodeCount(LayerDefinition *layerDef)
Returns the number of nodes in a layer.
Definition: dnn.c:47
Weight * weightsPtr
Definition: dnn.h:118
int width
Definition: dnn.h:42
Volume nodeMap
Definition: dnn.h:57
int depth
Definition: dnn.h:44
double Weight
Definition: dnn.h:28
double output
Definition: dnn.h:86
int calcStride(int tgtWidth, int filter, int srcWidth)
Calculates the stride (number of nodes/columns that are skipped) in a convolutional kernel...
Definition: dnn.c:802
int getLayerWeightCount(LayerDefinition *layerDef)
Returns the number of weights for a layer (based on a given layer definition)
Definition: dnn.c:138
ByteSize getLayerSize(LayerDefinition *layerDef)
Returns the memory (byte) size of a specific layer based on a given layer definition.
Definition: dnn.c:272
ByteSize size
Definition: dnn.h:84
Variably-sized data structure modeling a vector of nodes.
Definition: dnn.h:100
int nodeCount
Definition: dnn.h:103
LayerType layerType
Definition: dnn.h:55
LayerDefinition * setLayerDefinitions(int layerCount,...)
Returns a pointer to an array of a variable number of layer definitions.
Definition: dnn.c:1510
void backPropagateNetwork(Network *nn, int targetClassification)
Backpropagates the output nodes' errors from output layer backwards to first layer.
Definition: dnn.c:585
ActFctType activationType
Definition: dnn.h:56
double learningRate
Definition: dnn.h:132
int getNodeBackwardConnectionCount(LayerDefinition *layerDef)
Returns the number of backward connections of a NODE (not of a layer)
Definition: dnn.c:63
Variably-sized data structure holding a definable number of columns that form a layer.
Definition: dnn.h:114
Node nodes[]
Definition: dnn.h:104
int weightCount
Definition: dnn.h:133
Weight * weightPtr
Definition: dnn.h:73
ByteSize size
Definition: dnn.h:131
Weight * weightsPtr
Definition: dnn.h:134
LayerType
Definition: dnn.h:31
Connection connections[]
Definition: dnn.h:90
ByteSize size
Definition: dnn.h:116
void feedForwardNetwork(Network *nn)
Feeds forward (=calculating a node's output value and applying an activation function) layer by layer...
Definition: dnn.c:692
ByteSize getLayerWeightBlockSize(LayerDefinition *layerDef)
Returns the memory (byte) size of the weights block for a specific layer.
Definition: dnn.c:190
Weight bias
Definition: dnn.h:85
int layerCount
Definition: dnn.h:136
int columnCount
Definition: dnn.h:119
Column columns[]
Definition: dnn.h:120
Utitlies for handling the MNIST data set files.
Data structure allowing users to define the characteristics of a network.
Definition: dnn.h:54
Variably-sized data structure modeling a neuron with a variable number of connections/weights.
Definition: dnn.h:83
int maxConnCountPerNode
Definition: dnn.h:102
int forwardConnCount
Definition: dnn.h:89
LayerDefinition * layerDef
Definition: dnn.h:117
Variably-sized data structure that serves as the over container for a whole network.
Definition: dnn.h:130
struct Vector3D Vector3D
Definition: dnn.h:19
int id
Definition: dnn.h:115
struct Value2D Value2D
Definition: dnn.h:20