A high-level machine learning library for Go with a Keras-like API, built on Gorgonia.
Goro is a high-level machine learning library for Go that provides a Keras-like API for building and training neural networks. It simplifies the process of creating complex models by offering an intuitive, sequential interface and pre-built layers, built on top of the Gorgonia tensor library. The library aims to make machine learning in Go more accessible and productive for developers familiar with Python's Keras.
Go developers who want to implement machine learning models without dealing with low-level tensor operations, particularly those transitioning from Python's Keras ecosystem.
Developers choose Goro because it brings the familiar, high-level API of Keras to Go, reducing the learning curve for ML in Go while leveraging Gorgonia's performance. It's specifically designed for Go developers who want productive ML workflows without switching to Python.
A High-level Machine Learning Library for Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Goro provides a Keras-inspired interface, making it easy for Python developers to transition to Go for ML, as highlighted in the overview and usage example.
It offers a clean, declarative syntax for building models layer-by-layer, similar to Keras' Sequential API, shown in the code snippet with AddLayers method.
Includes essential layers like Conv2D, MaxPooling2D, and Fully Connected layers, reducing low-level coding effort, as evidenced in the example for MNIST classification.
Supports optimizers like RMSProp and built-in loss functions such as cross-entropy, simplifying training setup, as mentioned in the features and compile options.
Key features like RNNs, LSTMs, summaries, and visualizations are on the roadmap but not available, limiting use for advanced ML tasks beyond CNNs.
As a Go library, it lacks the extensive community resources, pre-trained models, and tooling found in Python's ML ecosystem, which can hinder development speed.
While docs exist via GoDoc and package READMEs, they may be less comprehensive or intuitive than those for mature libraries, potentially increasing setup time.
goro is an open-source alternative to the following products: