使用TF2.10.0与Python3.10.8遇Layer实例错误求排查
解决TensorFlow中TypeError: The added layer must be an instance of class Layer错误
你的报错原因很明确:代码里的第二个MaxPool2D没有加括号,传入的是类本身而非层实例。
看你提供的代码,在Sequential模型的第6行:
layers.MaxPool2D,
这里你只写了类名MaxPool2D,没有加()来创建层的实例,而其他两个MaxPool2D都是正确调用的layers.MaxPool2D()。Keras要求添加到模型的必须是Layer类的实例,直接传入类对象就会触发这个TypeError。
修正后的代码如下:
import tensorflow.keras.layers as layers from tensorflow.keras.models import Sequential import numpy as np import PIL model = Sequential([ layers.Rescaling(1./255, input_shape=(img_height, img_width, 3)), layers.Conv2D(16, 3, padding='same', activation='relu'), layers.MaxPool2D(), layers.Conv2D(32, 3, padding='same', activation='relu'), layers.MaxPool2D(), # 此处添加括号创建层实例 layers.Conv2D(64, 3, padding='same', activation='relu'), layers.MaxPool2D(), layers.Flatten(), layers.Dense(128, activation='relu'), layers.Dense(num_classes, name='output') ])
内容的提问来源于stack exchange,提问作者doryfied
相关产品推荐
相关产品推荐

