You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keras中训练不同输入维度的卷积模型并实现合并

解决Keras中多输入卷积模型合并的问题

看起来你想搭建两个输入维度不同的卷积分支,然后合并它们的输出——这正是Keras Functional API的拿手好戏,Sequential模型因为是线性结构,没法处理这种多分支的场景。我帮你把代码补全并修正问题:

首先导入必要的模块:

from keras.models import Model
from keras.layers import Input, Conv2D, Flatten, Dense, Concatenate
from keras import regularizers

定义你的参数(把time_steps替换成你实际使用的数值):

input_size = 4
input_sizeB = 6
time_steps = 100  # 示例值,替换为你的真实时间步长

构建第一个卷积分支(输入维度为input_size)

input1 = Input(shape=(1, time_steps, input_size))
x1 = Conv2D(
    filters=10,
    kernel_size=(24, 3),
    activation='relu',
    data_format='channels_first',
    kernel_regularizer=regularizers.l2(0.001)
)(input1)
x1 = Flatten()(x1)
x1 = Dense(25, activation='tanh', kernel_regularizer=regularizers.l2(0.003))(x1)

构建第二个卷积分支(输入维度为input_sizeB)

input2 = Input(shape=(1, time_steps, input_sizeB))
x2 = Conv2D(
    filters=10,
    kernel_size=(24, 3),
    activation='relu',
    data_format='channels_first',
    kernel_regularizer=regularizers.l2(0.001)
)(input2)
x2 = Flatten()(x2)
x2 = Dense(25, activation='tanh', kernel_regularizer=regularizers.l2(0.003))(x2)

合并两个分支的输出

这里用Concatenate把两个分支的特征拼接成一个更长的向量,你也可以根据任务需求换成Add(元素相加)、Multiply(元素相乘)等融合方式:

merged = Concatenate()([x1, x2])

添加输出层(根据任务调整)

假设你做的是二分类任务,这里用sigmoid激活函数;如果是多分类可以换成softmax:

output = Dense(1, activation='sigmoid')(merged)

构建完整模型并训练

# 创建模型,指定输入和输出节点
model = Model(inputs=[input1, input2], outputs=output)

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 训练时需要传入两个输入数据,比如你的训练集是X1、X2,标签是y
# model.fit([X1, X2], y, epochs=10, batch_size=32, validation_split=0.2)

几个关键说明:

  • 为什么不用Sequential?因为Sequential只能处理单一输入的线性层堆叠,多分支多输入的复杂结构必须用Functional API。
  • 修正了你之前的代码错误:A= model.add(Dense(...))是无效的,add()方法返回None,不能赋值给变量;Functional API中每层的输出是通过调用层对象得到的(比如x1 = Dense(...)(x1))。
  • 训练时要注意输入数据的格式,必须和两个输入节点的shape对应,并且以列表形式传入fit()函数。

内容的提问来源于stack exchange,提问作者user3043636

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:53:15