NNGo: Neural Network framework in Golang Built From Zero

Overview

The primary goal for NNGo is to be a highly performant machine learning/graph computation-based framework. It should bring the appeal of Go (simple compilation and deployment process to the ML world). There is a long way ahead of us regarding deployment, efficiency and managebility, but baby steps, right? :)

The secondary goal for NNGo is to provide a platform for exploration for non-standard deep-learning and neural network related things. Using our framework, you'll be able to expand the horizon of deep learning by exploring the highly abstract tool for extracting the most of the data as well as the algorithms.

Services

Mimicking the Keras architecture, TensorGo works by implementing the unbounded interface method able to reproduce any form or value ensuring tensor scalability. This was accomplished using the reflect module in Golang. In order to initialize a tensor, you can either define a placeholder, the tensor constructor or avoid it all together by implementing the higher abstract level of the NNGo library for ML.

Results

A Go-native neural network implementation from scratch.

Link to the code: https://github.com/Timothy102/neuralnetwork.