fix bugs under kSgdSparseCpuTraining mode (#100)

Local training with "sparse_update = True" parameter triggers kSgdSparseCpuTraining mode, fix bugs under it.
avx_docs
Zrachel 9 years ago committed by emailweixu
parent 341486d54d
commit 77ed98d1a8

@ -141,7 +141,7 @@ void SgdThreadUpdater::traverse(GetTraverseCallback getTraverseCallback) {
} else if (hasCpuPara) { } else if (hasCpuPara) {
getGlobalSyncThreadPool()->exec(cpuTraverse); getGlobalSyncThreadPool()->exec(cpuTraverse);
} else if (hasGpuPara) { } else if (hasGpuPara) {
cpuTraverse(0, 0); gpuTraverse(0, 0);
} }
} }

@ -101,6 +101,7 @@ void TrainerInternal::trainOneBatch(int64_t batchId,
// it // it
//! to ParameterHook. //! to ParameterHook.
auto& grad = para->getBuf(PARAMETER_GRADIENT); auto& grad = para->getBuf(PARAMETER_GRADIENT);
SetDevice device(para->getDeviceId());
paraStats[para->getID()].avgAbsGrad = grad->getAbsSum() / para->getSize(); paraStats[para->getID()].avgAbsGrad = grad->getAbsSum() / para->getSize();
paraStats[para->getID()].maxAbsGrad = grad->getAbsMax(); paraStats[para->getID()].maxAbsGrad = grad->getAbsMax();
} }

Loading…
Cancel
Save