A new alternative to the Fast Artificial Neural Network Library (FANN) in C

Hello Machine Learning and Neural Network developers out there, I just want to let you all know that I have developed an alternative to the already well established C library FANN; Introducing TFCNN it is a fully connected neural networking library in C with a small footprint, and as such, it can be included in your project via a single header file.

TFCNNv1 targets any platform that compiles C code, it features binary classification, and a staple set of 5 activation functions, 5 optimisers, and 3 uniform weight initialisation methods. A CPU based Uint8 version is additionally available which can be used for training and classification unlike with FANNs implementation which cannot be used in the training process. Although this does come at the additional cost of casting operations and slow float32 emulation on platforms without native support.

TFCNNv2 targets Linux platforms and features a superfluous set of 20 activation functions and has a softmax and regular multiple classification implementations. Without going into too much detail, whereas v1 is vanilla, reliable, using tried and tested methods, v2 expands upon that by implementing more selection and in some cases, purely experimental options such as derivatives based on lookup tables where maybe they really should not.

In no way do I intend to replace FANN, as the two projects have different goals and functionality subsets. My intention is only to bring attention to another option now in this domain which resembles the likeness of FANN; when I personally was looking for C implementations of fully connected neural networks the only real complete, versatile, and ready to use option that I could find was FANN and I wanted to expand that selection with something more to what I personally would have liked to have found. I am an enthusiast of the C programming language and also a recent enthusiast to programming neural networks.

TFCNN supports more than FANN in some areas and less than FANN in other areas and for this reason, I believe they make for their own specific use cases.

I do however propose that TFCNN makes a better use case for beginners, who wish to better understand how a classical neural network works without having to flick through too many different source files. This really is, as simple; clear, and concise as I feel one could make the implementation of such a neural network in the C programming language.

And not to take up any more of your time, if you are interested to learn more about the TFCNN project please visit the Github at:
https://github.com/tfcnn

Thank you,
James

More questions in this forum