func (g *GradHelper) subBatches(s sgd.SampleSet) <-chan sgd.SampleSet { batchSize := g.batchSize() res := make(chan sgd.SampleSet, s.Len()/batchSize+1) for i := 0; i < s.Len(); i += batchSize { bs := batchSize if bs > s.Len()-i { bs = s.Len() - i } res <- s.Subset(i, i+bs) } close(res) return res }