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

使用Keras Tuner训练模型时遇HyperModel.fit()返回值错误求助

Keras Tuner训练模型报错的解决方案

核心错误原因

  • 未指定优化目标:创建RandomSearch时未传入objective参数,Keras Tuner默认要求模型训练后返回单个float值作为优化依据,但model.fit()默认返回的是History对象,因此触发错误。
  • 损失函数与任务不匹配:模型输出层为Dense(10, activation='softmax')(适用于10分类任务),但编译时使用了回归任务的mean_absolute_error损失,逻辑矛盾导致指标异常。
  • 代码与描述不符:你提到训练LSTM模型,但代码中未使用layers.LSTM层,实际构建的是全连接网络。

分步解决步骤

1. 指定Keras Tuner的优化目标

在初始化RandomSearch时添加objective参数,Keras Tuner会自动从训练History中提取对应指标:

tuner = RandomSearch(
    build_model,
    max_trials=20,
    executions_per_trial=5,
    objective='val_accuracy'  # 可根据需求替换为'val_loss'
)

2. 修正损失函数与模型编译配置

针对多分类任务,替换损失函数并添加评估指标:

  • 若标签为整数格式(如0-9的数字标签):
model.compile(
    optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-4])),
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)
  • 若标签为one-hot编码格式:
model.compile(
    optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-4])),
    loss='categorical_crossentropy',
    metrics=['accuracy']
)

3. 修复变量名笔误

代码中best_model.fit(img_train, label_train, ...)的变量名与前面的x_train、y_train不一致,需统一:

history = best_model.fit(x_train, y_train, epochs=50, validation_split=0.2)

4. (可选)改为LSTM模型

如果确实需要训练LSTM模型,调整网络结构以适配序列输入(输入形状需为(时间步长, 特征数)):

def build_model(hp):
    model=keras.Sequential()
    # 替换为LSTM层,需根据你的数据调整时间步长参数
    model.add(layers.LSTM(units=hp.Int('lstm_units', 64, 128, step=16), 
                          input_shape=(时间步长, totalColumns)))
    for i in range(hp.Int('dense_layers',2,8)):
        model.add(layers.Dense(units=hp.Int('units_'+str(i),50,100,step = 10),
                               activation=hp.Choice('act_'+str(i),['relu','sigmoid'])))
    model.add(layers.Dense(10,activation='softmax'))
    model.compile(
        optimizer=keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-4])),
        loss='sparse_categorical_crossentropy',
        metrics=['accuracy']
    )
    return model

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:55:28