深度学习_遇到的错误信息汇总

一、ValueError

1.1 Only one class present in y_true. ROC AUC score is not defined in that case.

字面意思:y_true只有一个类呈现。ROC AUC score 没有对这种案例定义操作

直接原因:
1)最初给的标签是 one_hot形式 【n,类别数目】
2)到具体统计某个类时,底层函数分别计算每个类别分数(设置“macro”) 。过程会将该类所在列抽离成【n】形式数据。
3.)此时发现,都是一个数值,存在二义性。程序不清楚这样的数据应该如何对应。是算全部是一个类呢,还是全部不是类。有

间接原因:
1.程序调用是在验证集所有数据上做的,然后某个类,测试样本数目=0 ;

解决办法:

1.调用前后要加 try_catch 。防止一次报错就终止程序。 特别是样本不均衡的类,在batch级别做的统计。容易出错。

2.报错过滤,对于try_catch 捕获到错误,如果是该错误,不进行报错。避免刷屏。

3.batch级别统计时,样本的batch要尽量均匀

4.如果每个类样本数目=0 ,要补充样本。比如,验证集的某类样本数目=0。

1.2 Unknown layer: FixedDropout. Please ensure this object is passed to the `custom_objects` argument.

字面意思:FixedDropout是未知的层,需要在使用的地方,引入相关层的定义

出现位置:“model = tf.keras.models.model_from_json(json_config)” 时报错

原因:字面意思

解决办法:

1.找到“FixedDropout ”的定义,引入到项目中。查阅代码,这个是在EfficientNet中定义的层。直接引入efficientNet解决(import的时候,触发将FixedDropout注册到tensorflow操作)

2.只将层定义和注册部分抠出来,调用一遍。并给model_from_json 的`custom_objects`参数 赋值

原文地址:https://www.cnblogs.com/PiaoLingJiLu/p/15156907.html