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

DeepLearning4J报错occurrences cannot be negative问题求助

问题根源与解决方案

你遇到的occurrences cannot be negative异常,核心原因是用错了评估类:

  • 你的模型是回归任务(输出层nOut=1、损失函数用MSE、激活函数为IDENTITY),但你用了Evaluation类——这个类是专门给分类任务设计的,用来计算准确率、混淆矩阵等分类指标。
  • Evaluation会尝试把模型输出和标签当作分类类别索引处理,而回归的连续输出值会被错误解析,导致内部计数逻辑出现负数,触发异常。

修复代码

把评估逻辑替换为回归任务专用的RegressionEvaluation类:

private RegressionEvaluation evaluate(MultiLayerNetwork model, DataSet testData) {
    INDArray output = model.output(testData.getFeatures());

    System.out.println("Labels: " + testData.getLabels());
    System.out.println("Output: " + output);

    RegressionEvaluation eval = new RegressionEvaluation();
    eval.eval(testData.getLabels(), output);
    return eval;
}

额外检查点

  • 确认测试数据的标签testData.getLabels()和模型输出output的形状一致,都应为[样本数, 1]的INDArray
  • 回归任务下,RegressionEvaluation会输出MSE、MAE、RMSE等适合回归的指标,匹配你的模型目标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:09:27