2017-02-01 1 views
3

Я реализую чатбот, используя модель seq2seq от Tensorflow [1], подавая его данными из Ubuntu Dialogue Corpus. Я хочу сравнить RNN с использованием стандартных клеток LSTM с клетками Grid LSTM, описанными в Kalchbrenner et al [2].Внедрение BidirectionalGridLSTM

Я пытаюсь реализовать ячейку сетки LSTM в модели перевода, описанной в разделе 4.4 [2], но я борюсь с двунаправленной частью.

Я попытался использовать BidirectionalGridLSTMCell, но я не уверен, что они подразумевают под num_frequency_block. Они не упоминают об этом в газете. Кто-нибудь знает, что они подразумевают под num_frequency_block? В api docs говорится: num_frequecy_blocks: [обязательно] Список частотных блоков, необходимых для покрытия всего разделения входных данных, определенного start_freqindex_list и end_freqindex_list.

Кроме того, я попытался создать свою собственную ячейку. Сначала я делаю обработку с входами, затем меняю входы и выполняю обратную обработку. Но когда я конкатенирую эти результаты, форма меняется. Например. когда я пытаюсь запустить сеть с размером партии 32, тогда я получаю эту ошибку: ValueError: размеры должны быть равны, но 64 и 32 Как я могу конкатенировать результаты без изменения формы? Возможно ли это?

Есть ли у кого-нибудь другие советы, как я могу реализовать двунаправленную сетку LSTM?

[1] https://www.tensorflow.org/tutorials/seq2seq/ [2] https://arxiv.org/abs/1507.01526

+0

Вы когда-нибудь выясняли num_frequency_blocks? Я сталкиваюсь с той же проблемой, и я не могу найти четкий ответ в любом месте в Интернете. – Wmol

+0

Нет, извините, я этого не выяснил. – siljech

ответ

0

-tensorflow имеет двунаправленные LSTMs встроенные: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/bidirectional_rnn.ipynb

у вас отсутствует вторая ссылка [2].

Это полезная базовая линия, даже если они не обеспечивают сетки? Могу я спросить, для чего вы его используете?

+1

Мы попытались использовать static_bidirectional_rnn/dynamic_bidirectional_rnn, но наш ввод 2D, и они потребовали 3D. Мы не были уверены, как с этим справиться ... Мы закончили модификацию MultiRnnCell и изменили входные данные на второй уровень: reverseed_inputs = array_ops.reverse (current_input, [True, False]). И я пытаюсь реализовать chatbot, используя модель перевода из [this] (https://arxiv.org/abs/1507.01526), ​​где у них есть ячейки Grid LSTM в двунаправленной сети. – siljech

+0

- это чат-бот, обеспечивающий сквозную нейронную сеть? или вы используете это для чего-то более конкретного, например, для соответствия –

+0

Да, это сквозная нейронная сеть :) – siljech