将两个顺序模型合并为一个与使用单个顺序模型有何不同



我正在学习自动编码器。我想知道将两个序列模型组合成一个序列模型与仅使用一个序列模式的区别是什么。两个模型的体系结构是相同的。但不同的是,我们必须为第一个组合模型提供两个模型的输入形状。

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(2,input_shape = [3]),
tf.keras.layers.Dense(3)
])

encoder = tf.keras.models.Sequential([tf.keras.layers.Dense(2,input_shape = [3])])
decoder = tf.keras.models.Sequential([tf.keras.layers.Dense(3,input_shape = [2])])
autoencoder = tf.keras.models.Sequential([encoder,decoder])

您可以使用tf.keras.layers.concatenate将Tensorflow keras序列模型合并。

样本代码

from tensorflow.keras.layers import concatenate
from tensorflow.keras.models import Model, Sequential
from tensorflow.keras.layers import Dense, Input
sequential_model1_in = Input(shape=(28, 28, 1))
sequential_model1_out = Dense(64, input_dim=20, activation='relu', name='layer_1')(sequential_model1_in)
sequential_model1 = Model(sequential_model1_in, sequential_model1_out)
sequential_model2_in = Input(shape=(28, 28, 1))
sequential_model2_out = Dense(64, input_dim=20, activation='relu', name='layer_2')(sequential_model2_in)
sequential_model2 = Model(sequential_model2_in, sequential_model2_out)

concatenated = concatenate([sequential_model1_out, sequential_model2_out])
out = Dense(1, activation='softmax', name='output_layer')(concatenated)
merged_model = Model([sequential_model1_in, sequential_model2_in], out)

看看Tensorflow自动编码器简介

最新更新