python - 在我的自定义构建模型上出现“InvalidArgumentError:所需的可广播形状”错误
问题描述
我已经定义了我的模型,它接受三个输入,如下所示:
def build_model(nstepsA=12,nstepsB=12,LSTM_units = 200):
'''
nstepsA: timesteps for blockA (default=2)
nstepsB: timesteps for blockB (default=4)
LSTM_units: LSTM hidden units
'''
model = Sequential()
BlockA = Input(shape=(nstepsA, 2), name='BlockA')
BlockB = Input(shape=(nstepsB, 2), name='BlockB')
model1 = LSTM(LSTM_units, name='lstm1')(BlockA)
model2 = LSTM(LSTM_units, name='lstm2')(BlockB)
concat = concatenate([model1, model2],axis=1)
input_3 = Input(shape=(1 ), name='additional_inputs')
concat2 = concatenate([concat, input_3])
output = Dense(1, activation='tanh', name='dense')(concat2)
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
model.compile(optimizer=ada_grad, loss='mean_absolute_error',
metrics=['mean_absolute_error','mean_squared_error'],)
fin = Model(inputs=[BlockA,BlockB,input_3],outputs = output)
print(fin.summary())
return model
生成的模型摘要如下所示:
此处提供了数据输入形状:
A.shape = (12200,12,2)
B.shape = (12200,12,2)
Y1.shape = (12200,1)
Y2.shape = (12200,1)
我尝试使用以下代码拟合给定模型:
model = build_model()
model.fit([A,B,Y1],Y2)
运行它会给我以下错误:
InvalidArgumentError:需要可广播的形状
[[node SquaredDifference(定义于 tmp/ipykernel_36/1888426695.py:1)]] [Op:__inference_train_function_1662]
解决方案
推荐阅读
- google-app-engine - 具有 GCP 免费套餐的 Google Flex App Engine 实例,可以吗?
- java - 当我的整数数组是多模式且没有模式时,我的 Java 查找模式的方法失败
- ios - 动态调整集合视图单元格的大小
- html - 如何在 HTML/CSS 中的图像背景上为内容创建一个白框?
- python - Django 模型:访问表之间的多级链接
- swift - 没有参数的通配符模式(或 _ 参数)
- wordpress - 如何将一个网站的子页面重定向到另一个域?
- git - Bitbucket - 如何设置 webhook 以在某个目录中的文件更改时通知用户?
- c# - 摇 UI 游戏对象?
- java - Java RAM 百分比选项被忽略