Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. gorgonia

gorgonia

Apache-2.0Gov0.9.18

A library for building and evaluating mathematical expressions and neural networks in Go, with automatic differentiation and GPU support.

Visit WebsiteGitHubGitHub
5.9k stars449 forks0 contributors

What is gorgonia?

Gorgonia is a library that facilitates machine learning and graph computation in Go. It enables developers to write and evaluate mathematical equations involving multidimensional arrays, supporting automatic differentiation, symbolic differentiation, and GPU-accelerated computations. The library aims to provide a performant and scalable platform for building and deploying machine learning models within the Go ecosystem.

Target Audience

Go developers who want to build and deploy machine learning models in a production environment, as well as researchers exploring non-standard neural network architectures and algorithms within the Go stack.

Value Proposition

Developers choose Gorgonia because it brings machine learning capabilities to the Go environment, offering performance comparable to frameworks like TensorFlow and PyTorch while leveraging Go's simplicity and deployment advantages. It bridges the gap between experimental model building and production deployment for teams already invested in Go.

Overview

Gorgonia is a library that helps facilitate machine learning in Go.

Use Cases

Best For

  • Building neural networks and deep learning models in Go
  • Implementing automatic differentiation for custom mathematical expressions
  • Running GPU-accelerated machine learning computations with CUDA
  • Creating scalable graph-based computation systems
  • Developing production-ready ML systems within a Go stack
  • Exploring non-standard deep learning algorithms like evolutionary or neo-hebbian learning

Not Ideal For

  • Teams needing high-level, declarative APIs like Keras for rapid model prototyping without manual graph construction
  • Projects requiring dynamic control flow, such as conditional logic in recurrent networks, since Gorgonia lacks branching capabilities
  • Organizations prioritizing API stability for long-term production code, given its pre-1.0 status with breaking changes
  • Environments relying on OpenCL over CUDA for GPU acceleration, as OpenCL is not yet supported

Pros & Cons

Pros

Automatic Differentiation

Computes derivatives automatically for gradient-based optimization, enabling straightforward implementation of backpropagation in neural networks, as highlighted in the README's key features.

CUDA GPU Support

Provides out-of-the-box CUDA integration for accelerated computations, with tutorials available, though the README notes OpenCL is unsupported and CGO overhead can affect performance.

Go Stack Integration

Seamlessly fits into Go environments, leveraging Go's compilation and deployment advantages for production ML systems, as emphasized in the philosophy section.

Performance Parity

Offers CPU speeds comparable to TensorFlow and PyTorch, making it viable for performance-sensitive applications, per the README's comparison claims.

Cons

Verbose Graph Definition

Requires manual construction of computation graphs with explicit node creation and VM execution, leading to more boilerplate code than higher-level frameworks.

No Branching Support

Lacks if/else or loop constructs, limiting direct implementation of algorithms needing dynamic control flow, as admitted in the usage section.

API Instability

Pre-version 1.0, the API undergoes breaking changes with MINOR version increments, posing risks for production code, per the versioning policy.

Limited Ecosystem

Has fewer pre-built models, community resources, and tutorials compared to mature Python ML libraries, which can slow development.

Open Source Alternative To

gorgonia is an open-source alternative to the following products:

T
Theano

Theano was a Python library for numerical computation that allowed defining, optimizing, and evaluating mathematical expressions involving multi-dimensional arrays.

TensorFlow
TensorFlow

TensorFlow is an open-source machine learning framework developed by Google for building and deploying ML models across various platforms.

PyTorch
PyTorch

PyTorch is an open-source machine learning framework that provides tensor computation with strong GPU acceleration and deep neural networks built on a tape-based autograd system.

Frequently Asked Questions

Quick Stats

Stars5,914
Forks449
Contributors0
Open Issues105
Last commit1 year ago
CreatedSince 2016

Tags

#gradient-descent#neural-network#deep-learning#neural-networks#go-library#tensor-operations#graph-computation#automatic-differentiation#gpu-computing#golang#numerical-computing#artificial-intelligence#go#machine-learning

Built With

G
Go
C
CUDA

Links & Resources

Website

Included in

Go169.1kMachine Learning72.2k
Auto-fetched 1 day ago

Related Projects

PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars99,362
Forks27,568
Last commit1 day ago
keraskeras

Deep Learning for humans

Stars64,026
Forks19,761
Last commit1 day ago
streamlitstreamlit

Streamlit — A faster way to build and share data apps.

Stars44,318
Forks4,213
Last commit1 day ago
gradiogradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!

Stars42,407
Forks3,409
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub