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

一、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`参数 赋值

 

3.UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 1022-1023: unexpected end of data

 1. 关闭 pycharm, 删除工程目录下的 .idea 文件夹,重启pycharm,可能要多重启几次。出处

 

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

出错代码

model = tf.keras.models.model_from_json(json_config)

 

FixedDropout是efficientNet 定义的层。
解决办法:
1.直接引入efficientNet的模型定义文件

2.需要单独从efficientNet的源码中抠出定义部分,并在model_from_json的参数`custom_objects` 赋值

 

 

2022-2-15

又遇到这个问题,多番尝试无果。最后发现是模型加载的库和 加载的不一致

错误案例
import efficientnet.tfkeras as efn  # 解决Unknown layer: FixedDropout.
efn.init_tfkeras_custom_objects()
from keras.models import model_from_json
sub_model = model_from_json(model_json)
运行报找不到FixedDropout的定义
原因是 调用的是“init_tfkeras_custom_objects()” ,对应的定义是给 “tensorflow.keras”注册“FixedDropout”层;但是加载模型却是从 “keras.models” 引入。
正确的匹配是
from tensorflow.keras.models import model_from_json

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

原因:y_true只有一个类呈现。ROC AUC score 没有对这种案例定义操作 。通常是某个类样本太少。运行ROC_AUC统计时,没有该类的样例。

解决办法:
1.过滤掉该次统计出现累计数目=0的类别。 计算完毕,再定义没有样例的类的ROC_AUC,然后合并

2.try_Exeception,检测到是这条错误直接排除。

 

6. not enough values to unpack (expected 2, got 1)

期望俩个值,但是只给一个。没法足够的值来解包

def calFunction()
    returnVal = 1
    return returnVal

returnVal1,returnVal2 = calFunction

 

解决办法:修改接收部分或者函数增加输出


 

7.ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: 'c:\\programdata\\anaconda3\\envs\\pytorch1.9\\lib\\site-packages\\pil\\BdfFontFile.py'

Consider using the `--user` option or check the permissions.
原因是没有管理员权限。  管理员方式打开 Anaconda Powershell Prompt  后,执行正常

 

8.专业显卡telsa T4/英伟达显卡运行时间越来越长/单周期时间变长

已知原因:显卡散热不足 。 查看显卡信息,发现运行越来越慢的情况伴随着 显卡温度不断上升。

解决办法: 将显卡移动到吸风风扇后面卡槽。

 

9.('Keyword argument not understood:', 'keepdims')

读取模型时,报该错误。原因是  keepdims 是tensorflow2.6提出的特性。 模型保存的时候,会用该特性优化存储。 tensorflow2.5没有该算子。因此,读取不出来。

解决办法: 1)更改为tensorflow2.6及之后版本;2)让输出模型的人,保存为tensorflow2.5版本

 

10.ERROR conda.core.link:_execute(699): An error occurred while installing package ‘‘Rolling back trans

俩处地方提示。一是,Anaconda 环境安装cudatoolkit=11.1时,一直安装不通过。

二是,怀疑Anaconda有问题,卸载重装。安装Anaconda的时候,提示 'ERROR conda.core.link:_execute(699): An error occurred while installing package 'defaults::qt-5.9.7-vc14h73c81de_0' 。尝试多个安装包,失败。

原因:发现是最近公司用的绿盾加密升级了,客户端从5.5升级到6开头。卸载绿盾重新安装。 问题解决了。

解决办法:电脑安装绿盾等监控软件时,保持版本一致性。

posted @ 2021-08-18 15:16  飘零_未知的坚持  阅读(2431)  评论(0编辑  收藏  举报