/nn_in_c

Learning C and overoptimising

Primary LanguageCMIT LicenseMIT

Neural Networks in C

This repository documents my journey of learning C by implementing neural networks from scratch. I'll be sharing my progress, ideas, and experiments in overoptimizing neural networks using C.

Current Progress

I'm currently improving my shallow neural network implementation in shallow_nn.c. Once I've refined this, I'll move on to exploring other neural network architectures.

Matrix Library

I've implemented a custom matrix library in mat.c, which uses a linear continuous array to store matrix data. I'm using arithmetic operations to determine the index.

Getting Started

To use the code, simply execute build.sh to generate the shallow_nn.out executable.

Implementation History

If you're interested in seeing how my implementation has evolved, check out the following tags:

  • v0.1.0: Multi-pointer array implementation for matrices
  • v0.2.0: Linear array implementation for matrices
  • v0.3.0: Combining Ax + B to MX one operation

Contributing

I appreciate any contributions to improve the code! If you have suggestions or improvements, please don't hesitate to submit a pull request.