В настоящее время я работаю над проблемой исследования на основе LSTM. Однако при использовании RNN в keras, как я покажу ниже, я сталкиваюсь с вышеупомянутой ошибкой.
Я использую TF версии 1.12.0
и керас 2.2.4.
Кажется, это работает с ячейками, такими как LSTMCell, но не работает с UGRNNCell. Не знаю, как решить эту проблему.
cell1=tf.contrib.rnn.UGRNNCell(64)
cell2=tf.contrib.rnn.UGRNNCell(64)
cell3=tf.contrib.rnn.UGRNNCell(64)
cell4=tf.contrib.rnn.UGRNNCell(64)
А это моя модель:
model = Sequential()
model.add(RNN(cell1, input_shape=(train_X.shape[1:]),return_sequences=True))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(RNN(cell2,return_sequences=True))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(RNN(cell3, return_sequences=True))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(RNN(cell4,return_sequences=False))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(128, activation='relu'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
Это приводит к вышеприведенной ошибке, но без проблем работает, когда ячейка заменяется на LSTMCell.
Я ожидаю, что он будет работать без проблем для любого типа клеток.