Я пытаюсь реализовать базовую модель перевода, в которой ввод и вывод представляют собой предложения на разных языках в CNTK с использованием LSTM.
Для этого я создаю модель следующим образом:
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)
Насколько я понимаю, динамическая ось - это в основном та ось, которая определяется после загрузки данных, в данном случае размер пакета и длина входного предложения. Я не думаю, что где-либо меняю динамическую ось ввода.
Любая помощь высоко ценится.