Layers
Dense Layer
- Description: Fully connected layer where each input is connected to each output.
- Function:
initialize_dense(DenseLayer *layer, int input_size, int output_size)
forward_dense(DenseLayer *layer, float *input, float *output)
backward_dense(DenseLayer *layer, float *input, float *output, float *d_output, float *d_input, float *d_weights, float *d_biases)
update_dense(DenseLayer *layer, float *d_weights, float *d_biases, float learning_rate)
free_dense(DenseLayer *layer)
- File:
dense.c
Dropout Layer
- Description: Randomly sets a fraction of input units to zero during training to prevent overfitting.
- Function:
initialize_dropout(DropoutLayer *layer, float dropout_rate)
forward_dropout(DropoutLayer *layer, float *input, float *output, int size)
backward_dropout(DropoutLayer *layer, float *input, float *output, float *d_output, float *d_input, int size)
- File:
dropout.c
Flatten Layer
- Description: Flattens the input without affecting the batch size.
- Function:
initializeFlatten(FlattenLayer *layer, int input_size)
forwardFlatten(FlattenLayer *layer, float *input, float *output)
backwardFlatten(FlattenLayer *layer, float *input, float *output, float *d_output, float *d_input)
freeFlatten(FlattenLayer *layer)
- File:
flatten.c
Pooling Layer
- Description: Reduces the spatial size of the input volume.
- Function:
initialize_pooling(PoolingLayer *layer, int kernel_size, int stride)
compute_pooling_output_size(int input_size, int kernel_size, int stride)
forward_pooling(PoolingLayer *layer, const float *input, float *output, int input_size)
free_pooling(PoolingLayer *layer)
- File:
pooling.c
Max-Pooling Layer
- Description: Applies max pooling operation to the input.
- Function:
initialize_maxpooling(MaxPoolingLayer *layer, int kernel_size, int stride)
compute_maxpooling_output_size(int input_size, int kernel_size, int stride)
forward_maxpooling(MaxPoolingLayer *layer, const float *input, float *output, int input_size)
free_maxpooling(MaxPoolingLayer *layer)
- File:
maxpooling.c