Golang Neural Network

Overview

Gopher from internet =)

Varis

Neural Networks with GO

Build Status Go Report Card API Reference codecov MIT License Release

About Package

Some time ago I decided to learn Go language and neural networks. So it's my variation of Neural Networks library. I tried to make library for programmers (not for mathematics).

For now Varis is 0.1 version.

I would be happy if someone can find errors and give advices. Thank you. Artem.

Main features

  • All neurons and synapses are goroutines.
  • Golang channels for connecting neurons.
  • No dependencies

Installation

go get github.com/Xamber/Varis

Usage

package main

import (
	"github.com/Xamber/Varis"
)

func main() {
	net := varis.CreatePerceptron(2, 3, 1)

	dataset := varis.Dataset{
		{varis.Vector{0.0, 0.0}, varis.Vector{1.0}},
		{varis.Vector{1.0, 0.0}, varis.Vector{0.0}},
		{varis.Vector{0.0, 1.0}, varis.Vector{0.0}},
		{varis.Vector{1.0, 1.0}, varis.Vector{1.0}},
	}

	trainer := varis.PerceptronTrainer{
		Network: &net,
		Dataset: dataset,
	}

	trainer.BackPropagation(10000)
	varis.PrintCalculation = true

	net.Calculate(varis.Vector{0.0, 0.0}) // Output: [0.9816677167418877]
	net.Calculate(varis.Vector{1.0, 0.0}) // Output: [0.02076530509106318]
	net.Calculate(varis.Vector{0.0, 1.0}) // Output: [0.018253250887023762]
	net.Calculate(varis.Vector{1.0, 1.0}) // Output: [0.9847884089930481]
}

Roadmap 0.2-0.5

  • Add locks
  • Add training channels
  • Improve speed
  • Add error return to functions.
  • Create more tests and benchmarks.
  • Create server and cli realization for use Varis as a application

Alternatives

gonn | go-mind | go-perceptron-go

You might also like...
A multilayer perceptron network implemented in Go, with training via backpropagation.

Neural Go I'm in the process of making significant changes to this package, particularly, to make it more modular, and to base it around an actual lin

Generative Adversarial Network in Go via Gorgonia
Generative Adversarial Network in Go via Gorgonia

Generative adversarial networks Recipe for simple GAN in Golang ecosystem via Gorgonia library Table of Contents About Why Instruments Usage Code expl

Tpu-traffic-classifier - This small program creates ipsets and iptables rules for nodes in the Solana network

TPU traffic classifier This small program creates ipsets and iptables rules for

Naive Bayesian Classification for Golang.

Naive Bayesian Classification Perform naive Bayesian classification into an arbitrary number of classes on sets of strings. bayesian also supports ter

Ensembles of decision trees in go/golang.
Ensembles of decision trees in go/golang.

CloudForest Google Group Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go (golang). CloudForest allows for a

Genetic Algorithms library written in Go / golang

Description Genetic Algorithms for Go/Golang Install $ go install git://github.com/thoj/go-galib.git Compiling examples: $ git clone git://github.com

Golang Genetic Algorithm
Golang Genetic Algorithm

goga Golang implementation of a genetic algorithm. See ./examples for info on how to use the library. Overview Goga is a genetic algorithm solution wr

Golang implementation of the Paice/Husk Stemming Algorithm

##Golang Implementation of the Paice/Husk stemming algorithm This project was created for the QUT course INB344. Details on the algorithm can be found

Golang HTML to PDF Converter
Golang HTML to PDF Converter

Golang HTML to PDF Converter For reading any document, one prefers PDF format over any other formats as it is considered as a standard format for any

Comments
  • README.md wrong install code

    README.md wrong install code

    go get https://github.com/Xamber/Varis
    

    This code get error package https:/github.com/Xamber/Varis: "https://" not allowed in import path, please remove https://

    opened by ghost 1
Releases(release-0.1)
Owner
Artem Filippov
Ctrl-C/Ctrl-V developer
Artem Filippov
fonet is a deep neural network package for Go.

fonet fonet is a deep neural network package for Go. It's mainly created because I wanted to learn about neural networks and create my own package. I'

Barnabás Pataki 71 Oct 27, 2022
Artificial Neural Network

go-deep Feed forward/backpropagation neural network implementation. Currently supports: Activation functions: sigmoid, hyperbolic, ReLU Solvers: SGD,

Patrik Ehrencrona 395 Nov 11, 2022
Neural Network for Go.

gonet gonet is a Go module implementing multi-layer Neural Network. Install Install the module with: go get github.com/dathoangnd/gonet Import it in

Dat Hoang 77 Nov 25, 2022
onnx-go gives the ability to import a pre-trained neural network within Go without being linked to a framework or library.

This is a Go Interface to Open Neural Network Exchange (ONNX). Overview onnx-go contains primitives to decode a onnx binary model into a computation b

Olivier Wulveryck 447 Nov 23, 2022
A neural network library built in Go

go-mind A neural network library built in Go. Usage import "github.com/stevenmiller888/go-mind" m := mind.New(0.7, 10000, 3, "sigmoid") m.Learn([][]

Steven Miller 166 Aug 27, 2022
Example of Neural Network models of social and personality psychology phenomena

SocialNN Example of Neural Network models of social and personality psychology phenomena This repository gathers a collection of neural network models

null 6 Jan 15, 2022
Neural network in Go

network Package network is a simple implementation of a nonbiased neural network. The networks created by this package can be trained with backpropaga

Shingirai Chanakira 0 Nov 25, 2021
Neural Networks written in go

gobrain Neural Networks written in go Getting Started The version 1.0.0 includes just basic Neural Network functions such as Feed Forward and Elman Re

Go Machine Learning 530 Nov 27, 2022
An implementation of Neural Turing Machines

Neural Turing Machines Package ntm implements the Neural Turing Machine architecture as described in A.Graves, G. Wayne, and I. Danihelka. arXiv prepr

Fumin 398 Sep 13, 2022
Implementation of E(n)-Equivariant Graph Neural Networks, in Pytorch

EGNN - Pytorch Implementation of E(n)-Equivariant Graph Neural Networks, in Pytorch. May be eventually used for Alphafold2 replication.

Phil Wang 253 Nov 21, 2022