go-neural

Neural network implementation on golang

  • Owner: NOX73/go-neural
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

go-neural

Install

  go get github.com/NOX73/go-neural
  go get github.com/NOX73/go-neural/persist
  go get github.com/NOX73/go-neural/learn

Neural Network

Create new network:


  import "github.com/NOX73/go-neural"

  //...

  // Network has 9 enters and 3 layers 
  // ( 9 neurons, 9 neurons and 4 neurons).
  // Last layer is network output.
  n := neural.NewNetwork(9, []int{9,9,4})
  // Randomize sypaseses weights
  n.RandomizeSynapses()
  
  result := n.Calculate([]float64{0,1,0,1,1,1,0,1,0})
  

Persist network

Save to file:

  import "github.com/NOX73/go-neural/persist"

  persist.ToFile("/path/to/file.json", network)

Load from file:

  import "github.com/NOX73/go-neural/persist"

  network := persist.FromFile("/path/to/file.json")

Learning

  import "github.com/NOX73/go-neural/learn"

  var input, idealOutput []float64
  // Learning speed [0..1]
  var speed float64

  learn.Learn(network, in, idealOut, speed)

You can get estimate of learning quality:

  e := learn.Evaluation(network, in, idealOut)

Engine

For concurrent learn, calculate & dump neural network.

	network := neural.NewNetwork(2, []int{2, 2})
	engine := New(network)
	engine.Start()

	engine.Learn([]float64{1, 2}, []float64{3, 3}, 0.1)

	out := engine.Calculate([]float64{1, 2})

Live example

Dirty live example: [https://github.com/NOX73/go-neural-play]

Main metrics

Overview
Name With OwnerNOX73/go-neural
Primary LanguageGo
Program languageGo (Language Count: 2)
Platform
License:
所有者活动
Created At2014-01-04 14:42:44
Pushed At2019-01-08 07:10:32
Last Commit At2019-01-08 11:10:31
Release Count0
用户参与
Stargazers Count254
Watchers Count15
Fork Count40
Commits Count35
Has Issues Enabled
Issues Count9
Issue Open Count6
Pull Requests Count5
Pull Requests Open Count2
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private