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.


Sign up for your weekly dose of what's up in emerging technology.

(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.

Our Upcoming Events

Conference, in-person (Bangalore)
Machine Learning Developers Summit (MLDS) 2023
19-20th Jan, 2023

Conference, in-person (Bangalore)
Rising 2023 | Women in Tech Conference
16-17th Mar, 2023

Conference, in-person (Bangalore)
Data Engineering Summit (DES) 2023
27-28th Apr, 2023

Conference, in-person (Bangalore)
MachineCon 2023
23rd Jun, 2023

Conference, in-person (Bangalore)
Cypher 2023
20-22nd Sep, 2023

3 Ways to Join our Community

Whatsapp group

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

Discord Server

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

Subscribe to our newsletter

Get the latest updates from AIM