1、Sequential按层顺序创建模型
tf.keras.backend.clear_session()model = models.Sequential()model.add(layers.Embedding(MAX_WORDS,7,input_length=MAX_LEN))model.add(layers.Conv1D(filters = 64,kernel_size = 5,activation = "relu"))model.add(layers.MaxPool1D(2))model.add(layers.Conv1D(filters = 32,kernel_size = 3,activation = "relu"))model.add(layers.MaxPool1D(2))model.add(layers.Flatten())model.add(layers.Dense(1,activation = "sigmoid"))model.compile(optimizer='Nadam', loss='binary_crossentropy', metrics=['accuracy',"AUC"])model.summary()
2、函数式API创建任意结构模型
inputs = keras.Input(shape=(28, 28))x = keras.layers.Flatten()(inputs)x = keras.layers.Dense(128, activation="relu")(x)x = keras.layers.Dropout(0.5)(x)x = keras.layers.Dense(128, activation="relu")(x)outputs = keras.layers.Dense(10, activation="softmax")(x)model = keras.Model(inputs=inputs, outputs=outputs)model.summary()
3、Model子类化创建自定义模型
4、总结
- 对于顺序结构的模型,优先使用Sequential方法构建。
- 如果模型有多输入或者多输出,或者模型需要共享权重,或者模型具有残差连接等非顺序结构,推荐使用函数式API进行创建。
- 如果无特定必要,尽可能避免使用Model子类化的方式构建模型,这种方式提供了极大的灵活性,但也有更大的概率出错。