From 3238be05bff70e2f977d2714129c48263026a8b3 Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Thu, 19 Sep 2019 17:00:26 +0200
Subject: [PATCH] Do not fail when trying to register a gradient a second time

---
 src/pystencils_autodiff/backends/_tensorflow.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/pystencils_autodiff/backends/_tensorflow.py b/src/pystencils_autodiff/backends/_tensorflow.py
index cd82bfd..db85df1 100644
--- a/src/pystencils_autodiff/backends/_tensorflow.py
+++ b/src/pystencils_autodiff/backends/_tensorflow.py
@@ -69,9 +69,12 @@ def native_tensorflowop_from_autodiffop(autodiff_obj: pystencils_autodiff.AutoDi
                              **{autodiff_obj.forward_input_fields[i].name: inp for i, inp in enumerate(op.inputs)
                                 if autodiff_obj.forward_input_fields[i] in backward_ast.fields_accessed})
 
-    tf.RegisterGradient(stringcase.pascalcase("call_" + forward_ast.function_name))(
-        gradient_calculation
-    )
+    try:
+        tf.RegisterGradient(stringcase.pascalcase("call_" + forward_ast.function_name))(
+            gradient_calculation
+        )
+    except Exception:
+        pass
 
     return getattr(compiled_op, stringcase.snakecase(stringcase.pascalcase("call_" + forward_ast.function_name)))
 
-- 
GitLab