Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / kernel_selector / core / cl_kernels / convolution_grad_weights_yxfb.cl
index 1d6ffea..fba71db 100644 (file)
@@ -90,13 +90,16 @@ KERNEL(convolution_grad_weights_gpu_ref)(
 
     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)
@@ -110,5 +113,6 @@ KERNEL(convolution_grad_weights_gpu_ref)(
 #endif
         }
 #endif
+#endif
     }
 }