public void condMaskUpdate(Real[][] masks, NdArray <Real>[] weights) { long globalStep = _optimizer.UpdateCount; if (isMaskUpdateIter(globalStep)) { for (int i = 0; i < masks.Length; i++) { genericMaskUpdate(masks[i], weights[i]); } lastUpdateStep = globalStep; } else { for (int i = 0; i < masks.Length; i++) { for (int j = 0; j < masks[i].Length; j++) { weights[i].Grad[j] *= masks[i][j]; } } _optimizer.Update(); } }