TypeError: The added layer must be an instance of class Layer.

这篇博客讨论了在使用Keras时遇到的TypeError,原因是同时导入了TensorFlow中的keras和独立的keras库。解决方案是明确指定从TensorFlow.keras导入所需层。修改后的代码展示了如何正确构建一个神经网络模型,避免了库之间的混乱。
摘要由CSDN通过智能技术生成

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导入就行,这样就不会出现混乱

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值