class lenet_5(tf.keras.Model): def __init__(self,input_shape,outputs, **kwargs): super().__init__(**kwargs) self.conv1 = tf.keras.layers.Conv2D(filters=6,strides=(1,1),kernel_size=(5,5),activation="tanh") self.pool1 = tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2)) self.conv2 = tf.keras.layers.Conv2D(filters=6,strides=(1,1),kernel_size=(5,5),activation="tanh") self.pool2 = tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2)) self.flatten = tf.keras.layers.Flatten() self.dense1 = tf.keras.layers.Dense(units=84,activation="tanh") self.output_layer = tf.keras.layers.Dense(units=outputs,activation="softmax") def call(self,inputs): x = self.conv1(inputs) x = self.pool1(x) x = self.conv2(x) x = self.pool2(x) x = self.flatten(x) x = self.dense1(x) x = self.output_layer(x) return x model = lenet_5((28,28,1),10) model.compile(loss='categorical_crossentropy', optimizer=tf.keras.optimizers.SGD(learning_rate=config["learning_rate"]), metrics=['accuracy']) __ __