TypeError: The added layer must be an instance of class Layer. Found: <keras.layers.core.Flatten object at 0x0000022EEB3D9438>
出现这种错误很可能是keras内核和TensorFlow的内核都在使用导致错误,我代码为
from tensorflow import keras
from keras.layers import Dense,Flatten,BatchNormalization
model=keras.models.Sequential()
model.add(Flatten(input_shape=[28,28]))
model.add(BatchNormalization())
model.add(Dense(300,activation="elu",kernel_initializer="he_normal"))
model.add(BatchNormalization())
model.add(Dense(100,activation="elu",kernel_initializer="he_normal"))
model.add(BatchNormalization())
model.add(Dense(10,activation="sotfmax"))
我的所有层都是通过keras导入,而keras是通过TensorFlow导入的,但是keras这个库本身我也安装了,所以在这里出现了冲突,解决办法很简单,如下:
from tensorflow.keras.layers import Dense,Flatten,BatchNormalization
model=keras.models.Sequential()
model.add(Flatten(input_shape=[28,28]))
model.add(BatchNormalization())
model.add(Dense(300,activation="elu",kernel_initializer="he_normal"))
model.add(BatchNormalization())
model.add(Dense(100,activation="elu",kernel_initializer="he_normal"))
model.add(BatchNormalization())
model.add(Dense(10,activation="softmax"))
指定keras从TensorFlow导入就行,这样就不会出现混乱