在TensorFlow Keras中,要同时向多个模型层提供输入,可以使用Functional API
import tensorflow as tf
from tensorflow.keras.layers import Input, Dense, Concatenate
from tensorflow.keras.models import Model
# 定义两个不同的输入
input_A = Input(shape=(64,), name='input_A')
input_B = Input(shape=(64,), name='input_B')
# 对输入A应用一个密集层
x = Dense(32, activation='relu')(input_A)
# 对输入B应用另一个密集层
y = Dense(32, activation='relu')(input_B)
# 将两个层的结果合并
combined = Concatenate()([x, y])
# 添加输出层
output = Dense(1, activation='sigmoid')(combined)
# 创建模型,指定输入和输出
model = Model(inputs=[input_A, input_B], outputs=output)
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 打印模型结构
model.summary()
在此示例中,我们创建了两个输入层input_A
和input_B
,并将它们分别传递给各自的密集层。然后,我们使用Concatenate
层将这两个层的输出合并在一起,并添加了一个输出层。最后,我们使用Model
类创建一个模型,并指定输入和输出。
要训练此模型,您需要提供一个包含两个输入特征的数据集。例如,如果您的输入数据是(num_samples, 64)
形状的NumPy数组,您可以将其拆分为两个(num_samples, 64)
形状的数组,并将其传递给模型:
import numpy as np
# 生成示例数据
data_A = np.random.random((1000, 64))
data_B = np.random.random((1000, 64))
labels = np.random.randint(2, size=(1000, 1))
# 训练模型
model.fit([data_A, data_B], labels, epochs=10, batch_size=32)
这样,您就可以同时向多个模型层提供输入,并训练模型进行预测。
领取专属 10元无门槛券
手把手带您无忧上云