Обходной путь для ошибки while_loop () получил неожиданный аргумент ключевого слова «Maximum_iterations» - PullRequest
2 голосов
/ 27 апреля 2019

Я получил следующую ошибку при попытке запустить код:

model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))

TypeError: while_loop () получил неожиданный аргумент ключевого слова 'Maximum_iterations'

Я понял, что одним из решений является использование другой версии keras, такой как ссылка .Но я использую настольный компьютер моей компании, и каждая деинсталляция и установка должна проходить через ИТ-отдел моей компании.Есть ли другой обходной путь, который не включает изменение версии keras?

Моя версия keras v2.2.4;Тензофлоу v1.1.0

1 Ответ

2 голосов
/ 27 апреля 2019

Есть способ, но это не красиво. Вы можете обратиться к внутренностям TensorFlow и патчу обезьяны while_loop, чтобы игнорировать maximum_iterations=:

from tensorflow.python.ops import control_flow_ops

orig_while_loop = control_flow_ops.while_loop

def patched_while_loop(*args, **kwargs):
    kwargs.pop("maximum_iterations", None)  # Ignore.
    return orig_while_loop(*args, **kwargs)


control_flow_ops.while_loop = patched_while_loop

Обратите внимание, что это не пуленепробиваемый, то есть он потерпит неудачу, если maximum_iterations задан как позиционный (в отличие от ключевого слова) аргумент, но он должен "исправить" LSTM в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...