GoogLeNet报错


import tensorflow as tf
from tensorflow import keras
from keras import layers
# 忽略
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.InteractiveSession(config=config)


class Inception(tf.keras.layers.Layer):
    def __init__(self, c1, c2, c3, c4):
        # 设置模块构成
        super().__init__()
        # 线路1:1*1 relu same c1
        self.p1_1 = keras.layers.Conv2D(c1, kernel_size=1, activation='relu', padding='same')
        # 线路2:1*1 relu same c2[0]
        self.p2_1 = keras.layers.Conv2D(c2[0], kernel_size=1, activation='relu', padding='same')
        # 线路2:3*3 relu same c2[1]
        self.p2_2 = keras.layers.Conv2D(c2[1], kernel_size=3, activation='relu', padding='same')
        # 线路3:1*1 relu same c3[0]
        self.p3_1 = keras.layers.Conv2D(c3[0], kernel_size=1, activation='relu', padding='same')
        # 线路3:5*5 relu same c3[1]
        self.p3_2 = keras.layers.Conv2D(c3[1], kernel_size=5, activation='relu', padding='same')
        # 线路4:max-pool 1*1
        self.p4_1 = keras.layers.MaxPool2D(pool_size=3, padding='same', strides=1)
        # 线路4:1*1
        self.p4_2 = keras.layers.Conv2D(c4, kernel_size=1, activation='relu', padding='same')

    def call(self, x):
        # 前项传播过程
        # 线路1
        p1 = self.p1_1(x)
        # 线路2
        p2 = self.p2_2(self.p2_1)
        # 线路3
        p3 = self.p3_2(self.p3_1)
        # 线路4
        p4 = self.p4_2(self.p4_1)
        # concat
        outputs = tf.concat([p1, p2, p3, p4], axis=-1)


# Inception(64, (64, 128), (16, 32), 32)


# 辅助分类器(B4模块)
def aux_classifier(x, filter_size):
    # 池化层
    x = layers.AveragePooling2D(pool_size=5, strides=3, padding='same')(x)
    # 卷积层
    x = layers.Conv2D(filters=filter_size[0], kernel_size=1, strides=1, padding='valid', activation='relu')(x)
    # 展平
    x = layers.Flatten()(x)
    # 全连接
    x = layers.Dense(units=filter_size[1], activation='relu')(x)
    # 输出层
    x = layers.Dense(units=10, activation='softmax')(x)

    return x


# GoogLeNet构建
# B1模块
inputs = tf.keras.Input(shape=(224, 224, 3), name='input')
# 卷积:7*7 64
x = tf.keras.layers.Conv2D(64, kernel_size=7, strides=2, padding='same', activation='relu')(inputs)
# 池化层
x = tf.keras.layers.MaxPool2D(pool_size=3, strides=2, padding='same')(x)

# B2模块
# 卷积层1*1 2 same relu
x = tf.keras.layers.Conv2D(64, kernel_size=1, padding='same', activation='relu')(x)
# 卷积层3*3
x = tf.keras.layers.Conv2D(192, kernel_size=3, padding='same', activation='relu')(x)
# 池化层
x = tf.keras.layers.MaxPool2D(pool_size=3, strides=2, padding='same')(x)

# B3模块
# Incepetion
x = Inception(64, (96, 128), (16, 32), 32)(x)
# inception
x = Inception(128, (128, 192), (32, 96), 64)(x)
# # 池化
x = tf.keras.layers.MaxPool2D(pool_size=3, strides=2, padding='same')(x)

# B4模块
# Inception
x = Inception(192, (96, 208), (16, 48), 64)(x)
# 辅助输出1
aux_output1 = aux_classifier(x, [128, 1024])
# Inception
x = Inception(160, (112, 224), (24, 64), 64)(x)
# Inception
x = Inception(128, (128, 256), (24, 64), 64)(x)
# Inception
x = Inception(112, (144, 288), (32, 64), 64)(x)
# 辅助输出2
aux_output2 = aux_classifier(x, [128, 1024])
# Inception
x = Inception(256, (160, 320), (32, 128), 128)(x)
# 最大池化
x = layers.MaxPool2D(pool_size=3, strides=2, padding='same')(x)

# B5模块
# Inception
x = Inception(256, (160, 320), (32, 128), 128)(x)
# Inception
x = Inception(384, (192, 384), (48, 128), 128)(x)
# GAP
x = layers.GlobalAvgPool2D()(x)
# 输出层
output = layers.Dense(10, activation='softmax')(x)


# 构建模型
model = tf.keras.Model(inputs=inputs, outputs=[output, aux_output1, aux_output2])
model.summary

报错:Inputs to a layer should be tensors. Got: <keras.layers.convolutional.Conv2D object at 0x0000014A8208DC60>
请问怎么解决