CNTK отправляет ошибку относительно оператора sequence.gather - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь создать модель с оператором sequence.gather, но получаю сообщение об ошибке «Где операция может работать только на скалярном вводе» при вызове train_minibatch.

input_seq_axis = Axis('inputAxis')
input_sequence = sequence.input_variable(shape=vocab_dim, sequence_axis=input_seq_axis)
vowel_mask_sequence = sequence.input_variable(shape=2, sequence_axis=input_seq_axis)
a = Sequential([
    C.layers.Recurrence(C.layers.LSTM(hidden_dim)),
    ])
b=C.sequence.gather(a(input_sequence),vowel_mask_sequence)
z=Dense(3)(b)
label_sequence = sequence.input_variable(3, sequence_axis=z.dynamic_axes[1])

Как я могуисправить ошибку?Я даже не использую оператор "где".

1 Ответ

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

Для sequence.gather (x, y), y должно быть скаляром, то есть:

assert y.shape == (1,)

Значения y должны быть либо 0, либо 1, а также с той же точной динамической осью, что и x.

Пример о том, как использовать sequence.gather из библиотеки, которую я поддерживаю.

...