深度學習_遇到的錯誤信息匯總


一、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` 賦值

 

 

 

 

 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

 

解決辦法:修改接收部分或者函數增加輸出



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM