Ошибка загрузки CuDNNLSTM с Tensorflow 2.1.0 - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть:

from keras.layers import Input, LSTM, Dense, TimeDistributed, Activation, BatchNormalization, Dropout, Bidirectional
from keras.models import Sequential
from keras.utils import Sequence
from tensorflow.compat.v1.keras.layers import CuDNNLSTM

и

        self.model.add(CuDNNLSTM(lstm1_size, input_shape=(
            seq_length, feature_dim), return_sequences=True))
        # self.model.add(BatchNormalization())
        self.model.add(Dropout(0.2))
        self.model.add(CuDNNLSTM(lstm2_size, return_sequences=True))
        self.model.add(Dropout(0.2))
        self.model.add(CuDNNLSTM(lstm3_size, return_sequences=True))
        self.model.add(Dropout(0.2))
        self.model.add(CuDNNLSTM(lstm4_size, return_sequences=True))
        self.model.add(Dropout(0.2))
        self.model.add(Dense(feature_dim, activation='linear'))

Но я получаю ошибку:

TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.layers.cudnn_recurrent.CuDNNLSTM object at 0x140869be0>

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Вы смешиваете импорт между библиотеками keras и tf.keras, это не одна и та же библиотека, и это не поддерживается.

Вам необходимо выполнить все операции импорта из одной из библиотек:

from keras.layers import Input, LSTM, Dense, TimeDistributed, Activation, BatchNormalization, Dropout, Bidirectional
from keras.models import Sequential
from keras.utils import Sequence
from keras.layers import CuDNNLSTM
0 голосов
/ 13 апреля 2020

Если вы используете tenorflow 2, вам нужно будет включить с использованием слоя compat:

из tenensflow.compat.v1.keras.layers import CuDNNLSTM

как CuDNNLSTM не существует на keras.layer (v2)

...