paddlepaddle-VisualDL2.0对项目进行可视化调参
生活随笔
收集整理的這篇文章主要介紹了
paddlepaddle-VisualDL2.0对项目进行可视化调参
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果需要更好的閱讀體驗(yàn),可以在ai studio上fork該項(xiàng)目:使用VisualDL2.0對(duì)項(xiàng)目進(jìn)行可視化調(diào)參
調(diào)參是深度學(xué)習(xí)必須要做的事情。數(shù)據(jù)和模型處理好后,需要進(jìn)行模型訓(xùn)練,這個(gè)時(shí)候就需要進(jìn)行調(diào)參了。一種好的參數(shù)配置,可以使得訓(xùn)練出來(lái)的模型在測(cè)試集上表現(xiàn)出很好的效果??墒且绾握{(diào)呢?這里用飛槳(paddlepaddle深度學(xué)習(xí)框架)
我們通常說(shuō)的調(diào)參是指調(diào)整超參數(shù)這些,例如:
- 先給他個(gè)設(shè)置一個(gè)不大不小的epoch,和一些其他超參數(shù),例如epoch=10?然后跑一下,每多少iter(batch步數(shù))打印一次loss看看,這其實(shí)是很不直觀的,得一條條輸出看過(guò)去。
- batch_size給個(gè)32?還是64?又或者更大更小?大的batch容易收斂,可是又容易陷入局部最小值(鞍點(diǎn));小的batch訓(xùn)練的模型魯棒性好,可是又難收斂!
- 學(xué)習(xí)率先給個(gè)0.01,觀察loss,如果loss上升就說(shuō)明loss過(guò)大,給他減小到0.001?又或者0.005之類。如果loss下降很慢,這個(gè)時(shí)候是否考慮給他增大學(xué)習(xí)率呢?學(xué)習(xí)率衰減使用哪些策略比較好呢?是選擇分段衰減?還是按按步數(shù)衰減之類?等等…
- 這些超參數(shù)都是需要盡可能的去試,在不同模型和數(shù)據(jù)上這些參數(shù)選擇哪種是比較好的,都是不確定的(也就是所謂煉丹了)。
- 顯而易見調(diào)參這項(xiàng)工作是十分的耗費(fèi)費(fèi)時(shí)間和資源的,如果可以快速找到這些最好的參數(shù),可以節(jié)約很多時(shí)間和算力資源。這也是本文的主要問(wèn)題:如何進(jìn)行高效的調(diào)參?這里推薦使用VisualDL工具進(jìn)行可視化分析
- PaddleSeg是基于PaddlePaddle開發(fā)的端到端圖像分割開發(fā)套件,覆蓋了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割網(wǎng)絡(luò)。通過(guò)模塊化的設(shè)計(jì),以配置化方式驅(qū)動(dòng)模型組合,幫助開發(fā)者更便捷地完成從訓(xùn)練到部署的全流程圖像分割應(yīng)用。
- 本文將使用paddleSeg套件實(shí)現(xiàn)一個(gè)語(yǔ)義分割項(xiàng)目,并用VisualDL工具對(duì)其參數(shù)進(jìn)行可視化分析,以可視化的形式幫助開發(fā)者清楚了解這些參數(shù)的變化情況。
項(xiàng)目?jī)?nèi)容
- 一.對(duì)數(shù)據(jù)進(jìn)行一些處理以及簡(jiǎn)單配置一下paddleSeg中提供的模型的參數(shù)
- 二.訓(xùn)練模型,期間調(diào)整一些超參數(shù)/參數(shù)
- 三.使用VisualDL2.0工具進(jìn)行可視化
- 四.總結(jié)
一.數(shù)據(jù)和配置準(zhǔn)備:
- 數(shù)據(jù)這里采用第八屆CCF BDCI遙感影像地塊分割的初賽數(shù)據(jù)集,由于數(shù)據(jù)比較多,語(yǔ)義分割訓(xùn)練較慢,我們這邊只是為了觀察vdl的使用。因此,我們就從這14萬(wàn)張訓(xùn)練集里劃分出一萬(wàn)張來(lái)作為我們的訓(xùn)練集。模型使用deeplabv3+exception65(輕量級(jí)網(wǎng)絡(luò))
二.開始訓(xùn)練:打印loss等信息(正常的觀察模型訓(xùn)練情況的方式)以及保存日志文件(用于VDL可視化顯示訓(xùn)練情況)
- 訓(xùn)練過(guò)程中,設(shè)置參數(shù):–use_vdl(使用vdl) --vdl_log_dir “vis”(指定日志保存的路徑)
三.使用VDL可視化分析訓(xùn)練過(guò)程的各參數(shù)變化情況
1.訓(xùn)練完后(訓(xùn)練過(guò)程中也可以動(dòng)態(tài)查看),如何使用vdl可視化查看數(shù)據(jù)變化呢?
2.完成準(zhǔn)備工作后,我們就可以進(jìn)行可視化了!
訓(xùn)練過(guò)程中就打開vdl,觀察數(shù)據(jù)在訓(xùn)練過(guò)程中的動(dòng)態(tài)變化情況
3.查看模型結(jié)構(gòu):使用deeplabv3p_xception65模型訓(xùn)練,選擇模型文件,然后打開vdl,就可以查看模型結(jié)構(gòu)了
- 如果想看自己搭的一個(gè)模型結(jié)構(gòu)圖,那么也可以不需要自己去辛苦畫了,直接vdl打開,跑一下,就可以顯示出來(lái)啦!用處多多,有待挖掘!
4.我們還可以分成多組實(shí)驗(yàn),觀察不同超參數(shù)下,loss等數(shù)據(jù)的變化情況,在一張圖上展示出來(lái)
- 從最簡(jiǎn)單的來(lái):學(xué)習(xí)率
- vis1:lr1=0.01
- vis2:lr2=0.02
- vis3:lr3=0.05
- lr1、lr2、lr3在步數(shù)(橫坐標(biāo))為280的時(shí)候,miou分別為0.49357,0.43952,0.2408,可以幫助我們分析學(xué)習(xí)率衰減情況對(duì)miou提升的影響。對(duì)于某一階段的miou如果是單純看打印信息,是基本上都是沒顯示的,使用vdl后可以看任意階段的數(shù)值變化。Relative是訓(xùn)練到該位置的時(shí)間,通過(guò)這個(gè)參數(shù)可以查看訓(xùn)練多少步數(shù),需要多長(zhǎng)時(shí)間,調(diào)參時(shí)候可以先跑幾個(gè)epoch,就可以較為準(zhǔn)確的算出一個(gè)訓(xùn)練一個(gè)epoch要多長(zhǎng)時(shí)間,方便我們調(diào)整總epoch數(shù)的設(shè)置。
5.查看數(shù)據(jù)集
- 在aistudio環(huán)境中查看圖片其實(shí)不太方便的,不過(guò)很多和我一樣的小伙伴們又得用aistudio上的gpu環(huán)境,這個(gè)時(shí)候怎么辦呢?就可以用我們的vdl工具了,直接可視化出來(lái)你要看的一部分?jǐn)?shù)據(jù),想看哪些看哪些!
- log日志在vis4中
- 要在vdl查看數(shù)據(jù)集的話,需要配置deeplabv3.yaml文件中的一個(gè)參數(shù):VIS_FILE_LIST: "./dataset/rs_data/test_list.txt"
- 會(huì)在訓(xùn)練過(guò)程中保存模型時(shí)候打印一次,如果不想打印/在vdl中查看數(shù)據(jù),可以將此參數(shù)設(shè)置為None:VIS_FILE_LIST: None
四.總結(jié)
- 在訓(xùn)練過(guò)程中,也有打印loss等信息,可是訓(xùn)練多個(gè)epoch的話,打印的信息會(huì)非常多,每一條挨個(gè)看過(guò)去是非常累的。使用VDL2.0工具,可以將這些信息用幾張圖片展示出來(lái),鼠標(biāo)移動(dòng)到圖上,數(shù)據(jù)也會(huì)動(dòng)態(tài)顯示,可以幫助開發(fā)者們?nèi)ジ玫姆治瞿P偷囊恍┣闆r。目前VisualDL2.0工具有6大功能,支持多個(gè)框架的模型可視化。
- 標(biāo)量數(shù)據(jù)的展示
- 直方圖
- 樣本數(shù)據(jù)
- 網(wǎng)絡(luò)結(jié)構(gòu)
- P-R曲線
- high dimensional
- 最后,歡迎大家去VDL GitHub上點(diǎn)個(gè)star鴨!!
- github首頁(yè):https://github.com/PaddlePaddle/VisualDL
- 官網(wǎng):https://www.paddlepaddle.org.cn/paddle/visualdl
- aistudio項(xiàng)目:【VisualDL2.0–眼疾識(shí)別訓(xùn)練可視化】https://aistudio.baidu.com/aistudio/projectdetail/502834
- aistudio項(xiàng)目:【VisualDL2.0–基于「手寫數(shù)字識(shí)別」模型的全功能展示】https://aistudio.baidu.com/aistudio/projectdetail/622772
- aistudio論壇:https://ai.baidu.com/forum/topic/show/960053?pageNo=2
總結(jié)
以上是生活随笔為你收集整理的paddlepaddle-VisualDL2.0对项目进行可视化调参的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 超详细正点原子STM32F429开发板视
- 下一篇: js动态时间(转)