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

Keras交通停止标志检测模型训练报No gradients provided错误

报错原因
  • 核心原因:数据集构造错误,未提供训练对应的标签数据。你当前仅导入了图像输入,没有给每个样本标注对应的真实标签(比如包含停止标志为1,不包含为0),模型计算损失时无法获取标签来反向传播计算梯度,直接触发该报错。
  • 额外问题:你当前的数据集里只有停止标志的正样本,没有不包含停止标志的负样本,就算加上标签也没法完成二分类任务,模型无法学习区分两类样本。
  • 次要问题:二分类sigmoid输出使用MSE损失不是最优选择,容易出现梯度饱和的问题,但这不是本次报错的诱因。
解决方案
  • 第一步:调整数据集结构。新增负样本(不包含停止标志的交通场景图像),将train和valid文件夹分别修改为二级目录结构:train下新建stop(放停止标志正样本)、no_stop(放负样本)两个文件夹,valid目录同理创建对应的两个分类文件夹。
  • 第二步:使用Keras内置接口自动加载带标签的数据集,代码示例:
ds_train = keras.utils.image_dataset_from_directory(
    './train',
    image_size=(128, 128),
    batch_size=32,
    label_mode='binary'
)
ds_valid = keras.utils.image_dataset_from_directory(
    './valid',
    image_size=(128, 128),
    batch_size=32,
    label_mode='binary'
)
  • 第三步:优化损失函数配置,替换为更适配二分类任务的二元交叉熵,提升训练收敛效果:
model.compile(
loss='binary_crossentropy', 
optimizer='adam',
metrics=['accuracy']
)
  • 第四步:重新执行训练逻辑即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:27:04