Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 3.45 KB

README.md

File metadata and controls

63 lines (46 loc) · 3.45 KB

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