日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录

發(fā)布時間:2024/7/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

使用的是Paddle框架2.0版本
網(wǎng)頁: https://github.com/PaddlePaddle/PaddleHub/tree/release/v2.1/demo/text_classification
也可以在其平臺上利用公開數(shù)據(jù)集跑一跑:
網(wǎng)頁:https://aistudio.baidu.com/aistudio/projectdetail/2390146?contributionType=1

使用的預訓練框架是:Ernie-tiny

下面記錄我自己的實驗數(shù)據(jù):

1. 記錄預訓練模型下載位置


下載的模型存儲到這里了!! !
因為模型一般會定義一個位置提前加載預訓練模型,這樣就不會重復下載了! 只需要掃描并加載!

2. 語法出錯合集

問題一:header: 是不是有第一行的標簽!!!


是不是包含了頭介紹:
就是是不是有第一行的標簽!!!

問題二: KeyError

說明在讀入數(shù)據(jù)時就出現(xiàn)了問題
造成這個問題的原因一般是沒有該key

仔細看下面的代碼可以看出:
record[‘label’] = slef.label_map[example.label] !

再看看你的label定義:

label_list = ['城市事件類;宣傳廣告', '城市事件類;擴充類別', '城市事件類;街面秩序', '城市部件類;市政公用設施', '城市事件類;市容環(huán)境']

這是text不是label! 不出錯才怪呢!

是這個函數(shù)有問題:


在該函數(shù)中,第一個先讀的label! 第二讀的text!
而自己的數(shù)據(jù)集第一列是text! 所以導致錯誤!

我們在base_NLP_dataset中將源碼調(diào)整為label 是第一列! text文本是第二列! 但是這樣是有問題的!
原因一: 我們pycharm中改正可能在linux下沒有改正
原因二: 這樣改正還是不行的!

解決方法: 修改自己的數(shù)據(jù)集,將兩列互換!

下面是實現(xiàn)方法:

兩列互換 DF yyds

import pandas
import pandas as pd

實現(xiàn)行列互換 DF yyds

path = "/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/demodataset/dev.txt" data = pandas.read_table(path)df = pd.DataFrame(data)print(df.head()) print(df["text_a"])df[['label', 'text_a']] = df[['text_a', 'label']] df.columns = ['label', 'text_a'] print(df.head()) df.to_csv("/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/demodataset/dev2.txt", sep="\t", index=0)

再次運行就沒有問題了!

總結(jié)

一定要自己看出錯信息!
要遵循源代碼的輸入輸出格式! 看看它怎么讀的! 明白數(shù)據(jù)的變化形式

問題三: 沒有l(wèi)oaded from 。。。

3. 實驗結(jié)果

第一次實驗: 完全按照教程

效果不理想

第二次實驗: 增大epoches、增大batch_size

這里是接著訓練的:

這里訓練了15次后,準確率提升了

第三次實驗:再次訓練35次!! 這次共訓練了50次





第四次訓練:直接拉滿到200 epochs

上面都是過擬合了,這里才是最正確的

這里才是最關鍵的!!上面的都沒有用到這里!

你在做的時候一定要看看是不是過擬合了!
如果損失很小,準確率極其高,那么就是過擬合了,這樣的模型是不具有泛化能力的!
你用在測試文件中,效果肯定很差!!

采用最佳的:

取5次最佳:

4. 實驗總結(jié):

4.1 過擬合! 看看自己損失是不是太小! 準確率是不是太高了??

這樣下去是過擬合的! 趕緊停下去尋找問題!

4.2 Paddle中model.pdparams才是我們的模型!! 寫路徑時要精確到它

4.3 最佳模型就是最佳模型,而且最終準確率也不會變

5. 在這里學到的其它知識:

https://blog.csdn.net/qq_35222729/article/details/120419015

總結(jié)

以上是生活随笔為你收集整理的【Text_classification】 PaddlePaddle框架下出错调整到运行的实验和记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。