if (local_id == 0)
{
-#if MOMENTUM
- UNIT_TYPE update_gradient_w = lr * (grad_w + DECAY_RATE * filter[weights_idx]) + prev_grad_w[weights_idx] * MOMENTUM_FACTOR;
- filter[weights_idx] -= update_gradient_w;
- prev_grad_w[weights_idx] = update_gradient_w;
+#if OUTPUT_GRAD_W
+ output[weights_idx] = grad_w;
#else
- filter[weights_idx] -= lr * (grad_w + DECAY_RATE * filter[weights_idx]);
-#endif
+ #if MOMENTUM
+ UNIT_TYPE update_gradient_w = lr * (grad_w + DECAY_RATE * filter[weights_idx]) + prev_grad_w[weights_idx] * MOMENTUM_FACTOR;
+ filter[weights_idx] -= update_gradient_w;
+ prev_grad_w[weights_idx] = update_gradient_w;
+ #else
+ filter[weights_idx] -= lr * (grad_w + DECAY_RATE * filter[weights_idx]);
+ #endif
#if BIAS_TERM
if(ifm == 0 && id_x == 0 && id_y == 0)
#endif
}
#endif
+#endif
}
}