Neural Networks with GO
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.
- All neurons and synapses are goroutines.
 - Golang channels for connecting neurons.
 - No dependencies
 
go get github.com/Xamber/Varis
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]
}- 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
 
