vector.go 634 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package main
  2. import "math/rand"
  3. type Vector []float64
  4. func MakeVector(n int) Vector {
  5. return make(Vector, n)
  6. }
  7. func MakeRandomVector(n int) Vector {
  8. V := make(Vector, n)
  9. for i := 0; i < n; i++ {
  10. for V[i] == 0 {
  11. V[i] = rand.NormFloat64()
  12. }
  13. }
  14. return V
  15. }
  16. func MakeDropoutVector(n int) Vector {
  17. V := make(Vector, n)
  18. for i := 0; i < n; i++ {
  19. if rand.Float64() >= Dropout {
  20. V[i] = 1 / (1 - Dropout)
  21. }
  22. }
  23. return V
  24. }
  25. func (V Vector) N() int {
  26. return len(V)
  27. }
  28. func (V Vector) Max() (int, float64) {
  29. id, max := 0, V[0]
  30. for i := 1; i < V.N(); i++ {
  31. if V[i] > max {
  32. id, max = i, V[i]
  33. }
  34. }
  35. return id, max
  36. }