1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package main
- import (
- "fmt"
- neuralnetwork "./neuralnetworkbase"
- teach "./teach"
- )
- func main() {
- sizes := []int{4, 8, 8, 3}
- nn := neuralnetwork.NewNeuralNetwork(sizes, 0.1, 481)
- // for i := 0; i < nn.Count; i++ {
- // if i > 0 {
- // fmt.Printf("Weights before:\n%v\n\n", mat.Formatted(nn.Weights[i], mat.Prefix(""), mat.Excerpt(0)))
- // fmt.Printf("Biases before:\n%v\n\n", mat.Formatted(nn.Biases[i], mat.Prefix(""), mat.Excerpt(0)))
- // fmt.Printf("Z before:\n%v\n\n", mat.Formatted(nn.Z[i], mat.Prefix(""), mat.Excerpt(0)))
- // }
- // fmt.Printf("A before:\n%v\n\n", mat.Formatted(nn.A[i], mat.Prefix(""), mat.Excerpt(0)))
- // }
- teacher := teach.NewTextDataReader("./iris.data")
- nn.Teach(teacher)
- // for i := 0; i < nn.Count; i++ {
- // if i > 0 {
- // fmt.Printf("Weights after:\n%v\n\n", mat.Formatted(nn.Weights[i], mat.Prefix(""), mat.Excerpt(0)))
- // fmt.Printf("Biases after:\n%v\n\n", mat.Formatted(nn.Biases[i], mat.Prefix(""), mat.Excerpt(0)))
- // fmt.Printf("Z after:\n%v\n\n", mat.Formatted(nn.Z[i], mat.Prefix(""), mat.Excerpt(0)))
- // }
- // fmt.Printf("A after:\n%v\n\n", mat.Formatted(nn.A[i], mat.Prefix(""), mat.Excerpt(0)))
- // }
- failCount := 0
- teacher.Reset()
- for teacher.Next() {
- index, _ := nn.Predict(teacher.GetData())
- expect := teacher.GetExpect()
- if expect.At(index, 0) != 1.0 {
- failCount++
- fmt.Printf("Fail: %v, %v\n\n", teacher.Index(), expect.At(index, 0))
- }
- }
- fmt.Printf("Fail count: %v\n\n", failCount)
- }
|