Skip to content

CubeFlix/tom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tom, a neural network library

tom is a CPU-based neural network library written in C. It supports dense and convolutional layers, along with a multitude of different activations, optimizers, and loss functions. Internally, tom uses shared matrices in memory to process large amounts of double-precision floating-point data, by sharing data between layers in models. Models can also be serialized and loaded from disk. tom has been tested with the Iris (Fisher, 1936) and MNIST (Deng, L., 2012) datasets. See tests/iris_test.c and tests/mnist_test.c for more information.

Currently, tom supports the following layer types:

tom also supports the following optimizers:

Finally, tom supports the following loss functions:

Usage

tom supports CMake, and can be built using:

cmake --build .

You can use tom in your code as follows:

#include "tom.h"

int main(void) {
    struct matrix m;
    QUIT_ON_ERROR(matrix_init(&m, 5, 10));
    matrix_free(&m);

    return 0;
}

Tom also includes a number of other miscellaneous functions for dataset preprocessing and error handling.

Documentation