12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package main
- import (
- "fmt"
- "log"
- "os"
- neuralnetwork "./neuralnetworkbase"
- teach "./teach"
- )
- func main() {
- sizes := []int{784, 16, 16, 10}
- nn, _ := neuralnetwork.NewNeuralNetwork(sizes, 1, neuralnetwork.NewRPropInitializer(neuralnetwork.RPropConfig{
- NuPlus: 1.2,
- NuMinus: 0.8,
- DeltaMax: 50.0,
- DeltaMin: 0.000001,
- }))
-
-
-
-
-
-
-
-
-
- teacher := teach.NewMNISTReader("./minst.data", "./mnist.labels")
- nn.Teach(teacher)
-
-
-
-
-
-
-
-
- outFile, err := os.OpenFile("./data", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
- if err != nil {
- log.Fatal(err)
- }
- defer outFile.Close()
- nn.SaveState(outFile)
- outFile.Close()
- failCount := 0
- teacher.Reset()
- for teacher.NextValidator() {
- dataSet, expect := teacher.GetValidator()
- index, _ := nn.Predict(dataSet)
- if expect.At(index, 0) != 1.0 {
- failCount++
-
- }
- }
- fmt.Printf("Fail count: %v\n\n", failCount)
- nn = &neuralnetwork.NeuralNetwork{}
- inFile, err := os.Open("./data")
- if err != nil {
- log.Fatal(err)
- }
- defer inFile.Close()
- nn.LoadState(inFile)
- inFile.Close()
- failCount = 0
- teacher.Reset()
- for teacher.NextValidator() {
- dataSet, expect := teacher.GetValidator()
- index, _ := nn.Predict(dataSet)
- if expect.At(index, 0) != 1.0 {
- failCount++
-
- }
- }
- fmt.Printf("Fail count: %v\n\n", failCount)
- }
|