Пользовательский уровень использует функцию с @ tf. Custom_gradient выдает ошибку: в настоящее время декоратор поддерживает аргументы только при включенном нетерпеливом выполнении - PullRequest
0 голосов
/ 19 июня 2020

python == 3.7.6 Tensorflow = 2.0.0

Я создал настраиваемый слой, который вызывает функцию, украшенную @ tf.custom_gradient, очень похожую на ситуацию, описанную в ответе под следующий вопрос: Как создать слой keras с настраиваемым градиентом в TF2.0?

Но я продолжаю получать эту ошибку во время выполнения: ValueError: The custom_gradient decorator currently supports keywords arguments only when eager execution is enabled.

The сама функция работает нормально, когда вызывается в основной функции. Итак, чтобы быть точным:

output = custom_function(input) отлично работает с нетерпеливым исполнением, но

input_tensor = Input(shape=(1, input_length))
output_layer = Custom_Layer(...)(input_tensor)
model = Model([input_tensor], [output_layer])
model.compile(optimizer='rmsprop', run_eagerly=True, loss='mae', metrics=['accuracy'])
model.summary()

не работает вообще. Я пробовал все комбинации включения и выключения активного выполнения, в том числе внутри команды компиляции, как показано, и внутри функции вызова уровня и в верхней части скрипта, используя tf.config.experimental_run_functions_eagerly(True), но ничто не мешает появлению ошибки.

Кажется, я не могу найти никакой документации, связанной с этим происшествием.

...