搭建神经网络的三种办法
Sequential
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(3, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2()) ])
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=500, validation_split=0.2, validation_freq=20)
model.summary()
Sequential和add组合
model=tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(128,activation="relu"))
model.add(tf.keras.layers.Dense(10,activation="softmax"))
定义类形式
class MyModel(Model):
def __init__(self):
super(MyModel, self).__init__()//初始化网络结构,首先找到MyModel的父类Model,然后运行父类Model的__init__初始化函数
self.d1 = Dense(1024)
def call(self, x):
y = self.d1(x)
return y
model = Mymodel()