1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package neuralnetworkbase
- import (
- "math"
- rand "math/rand"
- "time"
- mat "gonum.org/v1/gonum/mat"
- )
- func generateRandomDense(rows, columns int) *mat.Dense {
- rand.Seed(time.Now().UnixNano())
- data := make([]float64, rows*columns)
- for i := range data {
- data[i] = rand.NormFloat64()
- }
- return mat.NewDense(rows, columns, data)
- }
- func applySigmoid(_, _ int, x float64) float64 {
- return sigmoid(x)
- }
- func applySigmoidPrime(_, _ int, x float64) float64 {
- return sigmoidPrime(x)
- }
- func sigmoid(x float64) float64 {
- return 1.0 / (1.0 + math.Exp(-x))
- }
- func sigmoidPrime(x float64) float64 {
- sig := sigmoid(x)
- return sig * (1 - sig)
- }
- func sign(v float64) float64 {
- if v == 0 {
- return 0
- }
-
- return v / math.Abs(v)
- }
|