Keras: слой в последовательной модели с TimeFreqLSTMCell - PullRequest
0 голосов
/ 29 мая 2019

Извиняюсь, если этот вопрос ненормальный - я новичок в Keras / Tensorflow.Я пытаюсь добавить слой, который использует временную частоту ячейки LSTM (https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/TimeFreqLSTMCell) к модели Keras (минимальный код воспроизводится ниже). По сути, я хочу иметь возможность использовать это так, как вы быиспользуйте класс LSTM. Из документации видно, что вы можете сделать это, передав ячейку в качестве входных данных классу RNN (https://keras.io/layers/recurrent/). Когда я запускаю то, что вставлено ниже, я получаю ошибку

actual_input_size = freq_inputs[0].get_shape().as_list()[1]
IndexError: list index out of range

, который я отследил до этой строки https://github.com/tensorflow/tensorflow/blob/79e0f378dec9937d86d69a6d9998f255cf994d96/tensorflow/contrib/rnn/python/ops/rnn_cell.py#L411

Я потратил некоторое время на просмотр исходного кода и документации, и я думаю, что что-то в input_shape я не делаюЯ правильно понимаю, но необработанное исключение усложняет понимание того, что я делаю неправильно. Любой совет очень ценится!

import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense,RNN,TimeDistributed
timeLength = 500
windowSize = 10
n_features = 1
model = Sequential()
model.add(RNN(tf.contrib.rnn.TimeFreqLSTMCell(32,feature_size=5), input_shape=(timeLength,n_features), return_sequences=True))
model.add(TimeDistributed(Dense(1)))
model.compile(optimizer='adam', loss='mse')
...