【问题标题】:TypeError: The added layer must be an instance of class Layer. Found: <keras.layers.core.Dropout object at 0x000001622999A5F8>TypeError:添加的层必须是类Layer的实例。找到:<keras.layers.core.Dropout object at 0x000001622999A5F8>
【发布时间】:2020-09-06 06:50:00
【问题描述】:

导入库和模型,

from __future__ import print_function
import keras
from keras.datasets import mnist
from tensorflow.keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
#from tensorflow.keras.layers import backend as k

batch_size = 128
num_classes = 10
epochs = 12

下面写的代码,

model = Sequential()
    model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu", input_shape=(28, 28, 1) ))
    model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu"))
    
    model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
    
    model.add(Dropout(0.5))
    model.add(Flatten())
    
    model.add(Dense(128, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(10, activation='softmax'))

低于类型错误,我遇到了严重的问题,我无法解决,

TypeError                                 Traceback (most recent call last)
<ipython-input-6-6c99a01e13d4> in <module>
      7 model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
      8 
----> 9 model.add(Dropout(0.5))
     10 model.add(Flatten())

TypeError: The added layer must be an instance of class Layer. Found: <keras.layers.core.Dropout object at 0x000001622999A5F8>

现在,我应该如何解决此类错误? 需要帮助,

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    使用Keras or tensorflow.keras,不要同时使用。

    from __future__ import print_function
    from tensorflow import keras
    from tensorflow.keras.datasets import mnist
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Dropout, Flatten
    from tensorflow.keras.layers import Conv2D
    from tensorflow.keras.layers import MaxPooling2D
    from tensorflow.keras import backend as k
    
    batch_size = 128
    num_classes = 10
    epochs = 12
    
    model = Sequential()
    model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu", input_shape=(28, 28, 1) ))
    model.add(Conv2D(32, kernel_size=(3,3), strides=(1,1), activation="relu"))
    
    model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2) ))
    
    model.add(Dropout(0.5))
    model.add(Flatten())
    
    model.add(Dense(128, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(10, activation='softmax'))
    

    【讨论】:

      【解决方案2】:

      您使用tensorflow.keras 实例创建模型并且您正尝试添加Keras 实例层的问题。

      Tensorflow 有自己的 Keras 版本。所以只用一个。

      您的代码在修复导入语句后运行。
      代码:

      from __future__ import print_function
      from tensorflow import keras
      from tensorflow.keras.datasets import mnist
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Dense, Dropout, Flatten
      from tensorflow.keras.layers import Conv2D
      from tensorflow.keras.layers import MaxPooling2D
      #from tensorflow.keras.layers import backend as k
      

      【讨论】:

        猜你喜欢
        • 2020-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-02
        • 1970-01-01
        • 2019-08-14
        • 1970-01-01
        • 2020-06-08
        相关资源
        最近更新 更多