我试图应用未来的模式 http://www.golangpatterns.info/concurrency/futures
但我发现go例程只在一个cpu核心上执行。我确信我正确地设置了所有环境变量,就像核心数量一样。而且我也确定我的常规会花费很多时间。我就是这样做的。
Batch := make(chan *NNBatch, BatchNumber)
for i := 0; i < BatchNumber; i++ {
go func(Index int) {
Batch <- Self.TrainBatch(TrainData, LableData, Config, RandomTable[Index])
}(i)
}
for i := 0; i < BatchNumber; i++ {
Delta := <-Batch
.....
它正在尝试计算反向传播错误,每层超过100个节点,因此需要花费大量时间。
我做错了什么吗? cpu使用率固定为25%
任何提示都会有所帮助。