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