Top 8 Machine Learning Libraries In Go Language

Created by Google researchers, Go is a popular open-source programming language. The language includes many intuitive features, including a garbage collector, cross-platform, efficient concurrency, among others.

According to the Stack Overflow Developer Survey 2020, Go language is not only the fifth most loved programming language but also fetches the programmers the third-highest salary among other languages. 

Below here, we list down the top machine learning libraries in Go language.

(The libraries are listed according to the number of Stars in GitHub).

1| GoLearn

Stars: 7.3k

About: GoLearn is one of the most popular libraries in the Go language. It is also known as the ‘batteries included’ machine learning library for Go. It aims to contribute simplicity paired with customizability. Some of its features are-

  • The library includes helper functions for data like cross-validation, train splitting as well as test splitting. 
  • It is similar to the popular Scikit-learn library in Python as it implements the Scikit-learn interface of Fit/Predict. 
  • This library comes with practical examples.

Know more here.

2| Gorgonia

Stars: 3.5k

About: Gorgonia helps in facilitating machine learning entirely in Go. The primary goal of this library is to be a highly performant machine learning as well as graph computation-based library that can scale across multiple machines. It also contributes a platform for the exploration of non-standard deep-learning as well as neural network-related research. It can perform processes like neo-Hebbian learning, corner-cutting algorithms, among others. Some of its features are-

  • Gorgonia can perform automatic differentiation, symbolic differentiation, gradient descent optimisations and numerical stabilisation. 
  • The library provides many convenience functions to help create neural networks.
  • It supports CUDA and GPGPU computation.

Know more here.

3| goml

Stars: 1.1k

About: goml is a machine learning library written entirely in Go language which allows developers to include machine learning into their applications. The library consists of various models which help in learning in an online as well as the reactive manner by passing data to streams held on channels. Some of the features of this library include-

  • Comprehensive tests
  • Extensive documentation
  • Modular source code
  • Clean and expressive.

Know more here.

4| eaopt

Stars: 693

About: eaopt is an evolutionary optimisation library written in Go language. It allows one to write most of the evolutionary optimisation algorithms as special cases of a genetic algorithm. Some of its features include-

  • In this library, various evolutionary algorithms are available with a consistent API
  • One can practically do anything by using the GA struct.
  • Speciation and migration procedures are available.
  • Common genetic operators, including mutation, crossover, migration, among others, are already implemented.
  • It allows the evaluation of costlier functions to be done in a parallel manner. 

Know more here.

5| Evo

Stars: 104

About: Evo is a general framework for implementing evolutionary algorithms in Go. The framework exposes a clean and flexible API oriented around two interfaces —  genome and population. Genomes represent both the function being optimised and the representation of solutions, while populations represent the architecture under which genomes are evolved.  Some of its features are-

  • Clean and flexible API oriented.
  • The library can be used for writing modular web applications in Golang aimed at both backend and frontend.
  • It is modular and extensible.
  • It ensures high performance.

Know more here.

6| goga

Stars: 89

About: It is a genetic algorithm solution written in Golang. It is used and configured by injecting different behaviours into the main genetic algorithm object. It consists of three components — simulator, selector and mater.

The simulator provides a function that accepts a single genome and assigns a fitness score to it. The selector object takes a population of genomes and the total fitness and returns a genome from the population that it has chosen. In contrast, the mater accepts two genomes from the selector and combines them to produce two others. 

Know more here.

7| gogl

Stars: 60

About: gogl is a graph library written in Go language. This library aims to contribute simple, unifying interfaces, including implementations of graph algorithms and data structures that can scale from small graphs to huge graphs. The features of this library include-

  • Simplicity: gogl has fully and correctly modelling graph theoretic concepts 
  • Performance: Gogl has faster design constraints and allows the best-known algorithms.
  • Functional: The library orient towards transforms, functors, and streams; achieve other styles through layering.
  • Other features include extensibility, correctness, among others.

Know more here.

8| GoMind

Stars: 7

About: GoMind is a Neural Network (NN) library that is written entirely in Go. Currently, the library only supports a single hidden layer, and it will support multi-layer soon. In GoMind, the network learns from a training set using the back-propagation algorithm. Some of its features include-

  • GoMind supports activation functions like Sigmoid, ReLU, Leaky ReLU, among others.
  • The library estimates the ideal number of hidden layer neurons for a given input and output sizes if a count is not given during model configuration.
  • GoMind uses Mean Squared Error function to calculate error while back-propagating. 

Know more here.

More Great AIM Stories

Ambika Choudhury
A Technical Journalist who loves writing about Machine Learning and Artificial Intelligence. A lover of music, writing and learning something out of the box.

More Stories


8th April | In-person Conference | Hotel Radisson Blue, Bangalore

Organized by Analytics India Magazine

View Event >>

30th Apr | Virtual conference

Organized by Analytics India Magazine

View Event >>

Yugesh Verma
All you need to know about Graph Embeddings

Embeddings can be the subgroups of a group, similarly, in graph theory embedding of a graph can be considered as a representation of a graph on a surface, where points of that surface are made up of vertices and arcs are made up of edges

Yugesh Verma
A beginner’s guide to Spatio-Temporal graph neural networks

Spatio-temporal graphs are made of static structures and time-varying features, and such information in a graph requires a neural network that can deal with time-varying features of the graph. Neural networks which are developed to deal with time-varying features of the graph can be considered as Spatio-temporal graph neural networks. 

Vijaysinh Lendave
How to Evaluate Recommender Systems with RGRecSys?

A recommender system, sometimes known as a recommendation engine, is a type of information filtering system that attempts to forecast a user’s “rating” or “preference” for an item. In this post, we will look at RGRecSys, a library that performs constraint evaluation of recommender systems.

3 Ways to Join our Community

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Telegram Channel

Discover special offers, top stories, upcoming events, and more.

Subscribe to our newsletter

Get the latest updates from AIM