From e691be7814bcd7065950ec940456a4c9d8991645 Mon Sep 17 00:00:00 2001 From: Scott Zhu Date: Thu, 6 Jun 2019 15:57:19 -0700 Subject: [PATCH] Fix an important performance regression for LSTM and GRU in tf 2.0 The issue was caused by auto inline the tf function in eager context, which cause the grappler not able to do the swap the optimization. PiperOrigin-RevId: 251945251 --- tensorflow/python/keras/layers/recurrent_v2.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tensorflow/python/keras/layers/recurrent_v2.py b/tensorflow/python/keras/layers/recurrent_v2.py index 3c501073658..7ccaeba9f25 100644 --- a/tensorflow/python/keras/layers/recurrent_v2.py +++ b/tensorflow/python/keras/layers/recurrent_v2.py @@ -1189,6 +1189,9 @@ def _generate_defun_backend(unique_api_name, preferred_device, func): function_attributes = { _DEFUN_API_NAME_ATTRIBUTE: unique_api_name, _DEFUN_DEVICE_ATTRIBUTE: preferred_device, + # TODO(b/133178886): The function is auto inlined in eager context, which + # make grappler fail to do the optimization. Force it to not inline here. + '_noinline': True, } return function.defun_with_attributes(func=func, attributes=function_attributes)