TypeError: добавленный слой должен быть экземпляром класса Layer. Нашел: - PullRequest
0 голосов
/ 21 марта 2020

Я о тренировке модели с LSTM, но я получаю это сообщение об ошибке:

TypeError: Добавленный слой должен быть экземпляром класса Layer. Найдено:

Я видел, что у некоторых людей была такая же проблема, но ни одно из их решений не помогло мне. Мне нужна быстрая помощь, потому что мой срок почти закончился.

Пожалуйста, помогите!

Вот мой импорт:

import pandas as pd
import os
from os import walk
from os.path import join
import numpy as np
import re
from numpy import array
from numpy import asarray
from numpy import zeros




import nltk
from nltk.stem import PorterStemmer
from nltk.stem import SnowballStemmer
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize


from tensorflow.keras import models
from keras.preprocessing.text import one_hot
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers.core import Activation, Dropout, Dense
from keras.layers import Flatten
from keras.layers import GlobalMaxPooling1D
from keras.layers.embeddings import Embedding
from sklearn.model_selection import train_test_split
from keras.preprocessing.text import Tokenizer


import matplotlib.pyplot as plt

А вот мой код:

model = Sequential () embedding_layer = Embedding (vocab_size, 100, weights = [embedding_matrix], input_length = maxlen, trainable = False) model.add (embedding_layer) model.add (LSTM (128))

модель. add (Dense (1, активации = 'sigmoid')) model.compile (оптимизатор = 'adam', loss = 'binary_crossentropy', metrics = ['a cc'])

Сообщение об ошибке :


TypeError                                 Traceback (most recent call last)
<ipython-input-501-6005bb036887> in <module>
      2 embedding_layer = Embedding(vocab_size, 100, weights=[embedding_matrix], input_length=maxlen , trainable=False)
      3 model.add(embedding_layer)
----> 4 model.add(LSTM(128))
      5 
      6 model.add(Dense(1, activation='sigmoid'))

~\Anaconda3\lib\site-packages\keras\engine\sequential.py in add(self, layer)
    131             raise TypeError('The added layer must be '
    132                             'an instance of class Layer. '
--> 133                             'Found: ' + str(layer))
    134         self.built = False
    135         if not self._layers:

TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.layers.recurrent.LSTM object at 0x00000272F295E508>

Пожалуйста, помогите мне!

1 Ответ

2 голосов
/ 21 марта 2020

Вы импортируете другую layers и вашу Sequential модель из keras напрямую, но из-за ошибки понятно, что ваш LSTM слой импортируется из tensorflow.keras.layers вместо keras.layers. Импортируйте все слои из одного: keras или tenorflow , и ошибка исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...