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

构建处理加州数据集的宽深感知器时Concatenate层张量错误咨询

问题解决:宽深感知器拼接层的张量转换错误

你的代码错误在于:keras.layers.Concatenate([input, hidden2])只是创建了Concatenate层的实例,并没有将输入张量传入层进行计算,因此concat是层对象而非张量,导致输出层无法接收。

两种修正方案:

方案1:正确调用Concatenate层实例

先创建Concatenate层的实例,再将需要拼接的张量传入实例进行计算,得到张量结果:

input= keras.layers.Input(shape=x_train.shape[1:])
hidden1=keras.layers.Dense(30,activation="relu")(input)
hidden2=keras.layers.Dense(30,activation="relu")(hidden1)
# 先实例化Concatenate层,可指定axis参数(默认axis=-1)
concat_layer = keras.layers.Concatenate()
# 将张量列表传入层实例,得到拼接后的张量
concat = concat_layer([input, hidden2])
output=keras.layers.Dense(1)(concat)

方案2:使用便捷函数concatenate

直接调用小写开头的keras.layers.concatenate函数,它会自动处理输入并返回拼接后的张量:

input= keras.layers.Input(shape=x_train.shape[1:])
hidden1=keras.layers.Dense(30,activation="relu")(input)
hidden2=keras.layers.Dense(30,activation="relu")(hidden1)
# 直接传入张量列表,得到拼接后的张量
concat = keras.layers.concatenate([input, hidden2])
output=keras.layers.Dense(1)(concat)

两者的区别:大写的Concatenate是层类,适合需要重复使用或自定义参数(如拼接轴)的场景;小写的concatenate是封装好的便捷函数,简化了调用流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:55:11