main.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package main
  2. import (
  3. "fmt"
  4. neuralnetwork "./neuralnetworkbase"
  5. mat "gonum.org/v1/gonum/mat"
  6. )
  7. func main() {
  8. dataSet, result := readData("./iris.data")
  9. sizes := []int{4, 2, 2, 3}
  10. nn := neuralnetwork.NewNeuralNetwork(sizes)
  11. for i := 0; i < len(dataSet); i++ {
  12. fmt.Printf("Dataset[%d]:\n%v\n\n", i, mat.Formatted(dataSet[i], mat.Prefix(""), mat.Excerpt(0)))
  13. fmt.Printf("Result[%d]:\n%v\n\n", i, mat.Formatted(result[i], mat.Prefix(""), mat.Excerpt(0)))
  14. nn.Backward(dataSet[i], result[i])
  15. }
  16. // data := make([]float64, sizes[0])
  17. // for i := range data {
  18. // data[i] = rand.Float64()
  19. // }
  20. // aIn := mat.NewDense(sizes[0], 1, data)
  21. max, index := nn.Predict(dataSet[0])
  22. for i := 0; i < nn.Count; i++ {
  23. if i > 0 {
  24. fmt.Printf("Weights:\n%v\n\n", mat.Formatted(nn.Weights[i], mat.Prefix(""), mat.Excerpt(0)))
  25. fmt.Printf("Biases:\n%v\n\n", mat.Formatted(nn.Biases[i], mat.Prefix(""), mat.Excerpt(0)))
  26. fmt.Printf("Z:\n%v\n\n", mat.Formatted(nn.Z[i], mat.Prefix(""), mat.Excerpt(0)))
  27. }
  28. fmt.Printf("A:\n%v\n\n", mat.Formatted(nn.A[i], mat.Prefix(""), mat.Excerpt(0)))
  29. }
  30. fmt.Printf("Resul: %v, %v\n\n", index, max)
  31. }