Guest User

Untitled

a guest
Jan 13th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.35 KB | None | 0 0
  1. // batches returns a channel of k-size permuted batches
  2. func batches(data []Datum, k int) chan []Datum {
  3.     c := make(chan []Datum)
  4.     go func() {
  5.         i := 0
  6.         p := rand.Perm(len(data))
  7.         for {
  8.             batch := make([]Datum, k)
  9.             for j := 0; j < k; j++ {
  10.                 batch[j] = data[p[i]]
  11.                 i = (i + 1) % len(data)
  12.             }
  13.             c <- batch
  14.         }
  15.     }()
  16.     return c
  17. }
Add Comment
Please, Sign In to add comment