Exemple #1
0
        private CumGrad _cumulate_gradient(NDArray grad, int index)
        {
            var     cgrad    = _get_cum_gradient(index);
            NDArray cum_grad = null;
            var     num_cums = 0;

            if (cgrad != null)
            {
                num_cums = cgrad.Nums;
                if (num_cums > 0)
                {
                    cum_grad = cgrad.Grad + grad;
                    num_cums++;
                }
                else
                {
                    cum_grad = grad;
                    num_cums = InitUpdates + 1;
                }
            }
            else
            {
                cum_grad = grad;
                num_cums = InitUpdates + 1;
            }

            cgrad = new CumGrad(num_cums, cum_grad);
            _put_cum_gradient(index, cgrad);

            return(cgrad);
        }
Exemple #2
0
 private void _put_cum_gradient(int index, CumGrad cgrad)
 {
     CumGrads[index] = cgrad;
 }