Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dathoangnd/gonet
Neural Network for Go.
https://github.com/dathoangnd/gonet
deep-learning go machine-learning neural-network
Last synced: 3 months ago
JSON representation
Neural Network for Go.
- Host: GitHub
- URL: https://github.com/dathoangnd/gonet
- Owner: dathoangnd
- License: mit
- Created: 2020-01-11T18:27:28.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-05T16:08:18.000Z (almost 5 years ago)
- Last Synced: 2024-07-31T20:52:16.000Z (5 months ago)
- Topics: deep-learning, go, machine-learning, neural-network
- Language: Go
- Homepage: https://pkg.go.dev/github.com/dathoangnd/gonet
- Size: 21.5 KB
- Stars: 82
- Watchers: 5
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - gonet - Neural Network for Go. (Machine Learning / Search and Analytic Databases)
- zero-alloc-awesome-go - gonet - Neural Network for Go. (Machine Learning / Search and Analytic Databases)
- awesome-go-extra - gonet - 01-11T18:27:28Z|2020-04-05T16:08:18Z| (Machine Learning / Advanced Console UIs)
README
# gonet
[![Documentation](https://godoc.org/github.com/dathoangnd/gonet?status.svg)](https://pkg.go.dev/github.com/dathoangnd/gonet)
[![Go Report Card](https://goreportcard.com/badge/github.com/dathoangnd/gonet)](https://goreportcard.com/report/github.com/dathoangnd/gonet)
[![CircleCI](https://circleci.com/gh/dathoangnd/gonet.svg?style=svg)](https://circleci.com/gh/dathoangnd/gonet)
[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)gonet is a Go module implementing multi-layer Neural Network.
## Install
Install the module with:```
go get github.com/dathoangnd/gonet
```
Import it in your project:```go
import "github.com/dathoangnd/gonet"
```
## Example
This example will train a neural network to predict the outputs of XOR logic gates given two binary inputs:```go
package mainimport (
"fmt"
"log""github.com/dathoangnd/gonet"
)func main() {
// XOR traning data
trainingData := [][][]float64{
{{0, 0}, {0}},
{{0, 1}, {1}},
{{1, 0}, {1}},
{{1, 1}, {0}},
}// Create a neural network
// 2 nodes in the input layer
// 2 hidden layers with 4 nodes each
// 1 node in the output layer
// The problem is classification, not regression
nn := gonet.New(2, []int{4, 4}, 1, false)// Train the network
// Run for 3000 epochs
// The learning rate is 0.4 and the momentum factor is 0.2
// Enable debug mode to log learning error every 1000 iterations
nn.Train(trainingData, 3000, 0.4, 0.2, true)// Predict
testInput := []float64{1, 0}
fmt.Printf("%f XOR %f => %f\n", testInput[0], testInput[1], nn.Predict(testInput)[0])
// 1.000000 XOR 0.000000 => 0.943074// Save the model
nn.Save("model.json")// Load the model
nn2, err := gonet.Load("model.json")
if err != nil {
log.Fatal("Load model failed.")
}
fmt.Printf("%f XOR %f => %f\n", testInput[0], testInput[1], nn2.Predict(testInput)[0])
// 1.000000 XOR 0.000000 => 0.943074
}
```
## Documentation
See: [https://pkg.go.dev/github.com/dathoangnd/gonet](https://pkg.go.dev/github.com/dathoangnd/gonet)## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.