Я пытаюсь реализовать модель базового вариант перевода, где вход и выход предложение на разных языках в CNTK использования LSTMs.Seq2Seq в CNTK: Run Time Error Функция только поддерживает 2 оси динамической
Для достижения этой цели я создаю модель следующим образом:
def create_model(x):
with c.layers.default_options():
m = c.layers.Recurrence(c.layers.LSTM(input_vocab_size))(x)
m = sequence.last(m)
y = c.layers.Recurrence(c.layers.LSTM(label_vocab_size))(m)
return m
batch_axis = Axis.default_batch_axis()
input_seq_axis = Axis('inputAxis')
input_dynamic_axes = [batch_axis, input_seq_axis]
raw_input = input_variable(shape = (input_vocab_dim), dynamic_axes = input_dynamic_axes, name = 'raw_input')
z= create_model(raw_input)
Но я получаю следующее сообщение об ошибке:
RuntimeError: Currently PastValue/FutureValue Function only supports input operand with 2 dynamic axis (1 sequence-axis and 1 batch-axis)
Согласно Я понимаю, динамическая ось в основном те, ось, которая определяется после загрузки данных, в этом случае размер партии и длина входного предложения. Я не думаю, что меняю динамическую ось ввода в любом месте.
Любая помощь очень ценится.
Спасибо за ваш ответ. Я прошел один и тот же учебник Seq2Seq и хотел избежать этой сложной функции LSTM_Layer. У меня возникло множество сомнений относительно этой функции. Я, вероятно, опубликую их как отдельный вопрос. –
«В текущей версии аргумент initial_state в Recurrence() не может быть зависимым от данных». Теперь поддерживается? Любое обновление об этом? –