TypeError:添加的图层必须是类Layer的实例。找到:<tensorflow.python.keras.layers.recurrent.LSTM对象位于0x00000272F295E508>

时间:2020-03-21 15:11:36

标签: python keras model

我要用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))

model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])

错误消息:


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 个答案:

答案 0 :(得分:2)

您正直接从 keras 导入其他layersSequential模型,但是从错误中可以理解,您的LSTM层是从导入的tensorflow.keras.layers而非keras.layers。从 keras tensorflow 之一导入所有图层,错误将消失。