python - 关于多个输出的 Keras 回归问题中的损失加权
问题描述
我正在为回归问题运行 Hyperas 优化,具有 3 个预测变量 (X) 和 2 个目标 (Y)。
在摄取原始数据后,我这样做了:
X_train, X_val, Y_train, Y_val = train_test_split(X, Y, test_size=0.2, random_state=111)
# Input layers and Hidden Layers
model = Sequential()
model.add(Dense({{choice([np.power(2,1),np.power(2,2),np.power(2,3),np.power(2,4),np.power(2,5)])}}, input_dim = X_train.shape[1]))
model.add(Activation({{choice(['tanh','relu', 'sigmoid'])}}))
model.add(Dropout({{uniform(0, 1)}}))
model.add(Dense({{choice([np.power(2,1),np.power(2,2),np.power(2,3),np.power(2,4),np.power(2,5)])}}))
model.add(Activation({{choice(['tanh','relu', 'sigmoid'])}}))
model.add(Dropout({{uniform(0, 1)}}))
# Output layer
model.add(Dense(Y_train.shape[1]))
model.add(Activation('linear'))
model.compile(loss='mae', metrics=['mae'],optimizer=optimizer, loss_weights=[0.6,0.4])
history = model.fit(X_train, Y_train,
batch_size={{choice([16,32,64,128])}},
epochs={{choice([20000])}},
verbose=2,
validation_data=(X_val, Y_val),
callbacks=callbacks_list)
但是,在运行它时,它会说:
ValueError: When passing a list as loss_weights, it should have one entry per model output. The model has 1 outputs, but you passed loss_weights=[1, 1]
我猜这是由于我的输入和输出的格式。但是,我无法弄清楚我应该将其输入模型的正确格式。
请欣赏您的建议,谢谢。
解决方案
推荐阅读
- arrays - 使用数组排序对多个键上的对象数组进行排序
- javascript - 如何在 React/NextJS 中嵌入第三方弹出按钮脚本
- sql - 根据sql中的条件查找重复项
- c# - ASP.net API 500 在进程仍在进行时使用异步等待时出现内部错误
- c# - Microsoft.Windows.Design.Interaction.dll 中的 ModelProperty.SetValue 方法的细节
- c# - 有没有办法找出数组中的对象是否已被破坏?
- json - 在 bash 脚本中使用 sed 替换多行模式
- python - 抓取后将简单列插入数据库的问题
- firebase - Firestore不使用云功能删除旧数据
- java - 如何将 SQLiteDatabase.execSQL 的值转换为字符串?