ValueError: Ядро переменной уже существует, запрещено.Вы имели в виду установить reuse = True или reuse = tf.AUTO_REUSE в VarScope? "В KERAS - PullRequest
0 голосов
/ 03 мая 2019

В настоящее время я работаю над проблемой исследования на основе 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.

Я ожидаю, что он будет работать без проблем для любого типа клеток.

...