一、总结
input = tf.keras.Input(shape=(28,28)):明确输入的规模后,使用flatten无须再指明规模
tf.keras.layers.Flatten():作为函数使用
model=tf.keras.Model(inputs=input, outputs=output):模型函数
x=tf.keras.layers.concatenate([x1,x2]):合并两个扁平化的输入,预测是否为同一类
model=tf.keras.Model(inputs=[input1,input2], outputs=output):合并输入的模型参数
二、代码
import pandas as pd
import tensorflow as tf
(train_image,train_label), (test_image,test_label) = tf.keras.datasets.fashion_mnist.load_data()
# 函数式API
# (1) single input
train_image = train_image/255
test_image = test_image/255
input = tf.keras.Input(shape=(28,28))# 第一个参数是batch
x=tf.keras.layers.Flatten()(input)
x=tf.keras.layers.Dense(128, activation='relu')(x)
x=tf.keras.layers.Dropout(0.5)(x)
x=tf.keras.layers.Dense(128, activation='relu')(x)
output=tf.keras.layers.Dense(10, activation='softmax')(x)
model=tf.keras.Model(inputs=input, outputs=output)
model.summary()
# (2) two input
input1 = tf.keras.Input(shape=(28,28))# 第一个参数是batch
input2 = tf.keras.Input(shape=(28,28))
x1=tf.keras.layers.Flatten()(input1)
x2=tf.keras.layers.Flatten()(input2)
x=tf.keras.layers.concatenate([x1,x2])
x=tf.keras.layers.Dense(128, activation='relu')(x)
output=tf.keras.layers.Dense(1, activation='sigmoid')(x)
model=tf.keras.Model(inputs=[input1,input2], outputs=output)
model.summary()