This repository contains implementations and experiments with neural networks in C, focusing on educational purposes. The project demonstrates fundamental concepts of neural networks through a modular codebase that includes linear algebra utilities.
- Supports multiple neural network architectures, including feedforward and deep neural networks.
- Supports different optimizers (SGD, Momentum, Adam).
- Offers several activation functions (ReLU, Sigmoid, TanH).
- Includes loss functions and regularization techniques.
- Linear algebra utilities for matrix and vector operations.
The lin_alg.h header file provides essential functions for matrix and vector manipulations, including:
- Weighted Sum:
multiple_in_single_out, computes the weighted sum of inputs. - Matrix-Vector Multiplication:
matrix_vector_multiplication, multiplies a matrix by a vector. - Matrix-Matrix Multiplication:
matrix_matrix_multiplication. - Transpose Matrix:
transpose_matrix. - Vector Operations: Includes dot product, addition, subtraction, and scalar multiplication.
- A C compiler (e.g., GCC)
- Make (optional, for building)
- Clone the Repository: Start by cloning the repository to your local machine:
git clone https://github.com/HanielUlises/Neural-Nets-C.git