Skip to content
Golang Neural Network
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE.md
README.md
dumps.go
neuron.go
perceptron.go
primary_test.go
secondary_test.go
synapse.go
train.go
varis.go
vector.go

README.md

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 can’t perform that action at this time.