chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

模型調(diào)優(yōu)和復(fù)現(xiàn)算法遇到的一些坑

新機(jī)器視覺 ? 來源:CSDN ? 作者:新機(jī)器視覺 ? 2022-05-18 15:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為一名算法工程師,主要是想把自己模型調(diào)優(yōu)和復(fù)現(xiàn)算法遇到的一些坑總結(jié)一下(里面的一行字可能是我當(dāng)時(shí)花費(fèi)了一周甚至更長(zhǎng)時(shí)間得到的總結(jié)),希望能對(duì)讀者有所幫助。

一、熟悉數(shù)據(jù)

模型是數(shù)據(jù)的濃縮版----Andrew NG的二八定律,即80%的數(shù)據(jù)+20%的=更好的AI

對(duì)于新上手的一任務(wù)來說,需要熟悉你的數(shù)據(jù)。拿檢測(cè)任務(wù)來說,可以寫個(gè)可視化代碼查看標(biāo)注是否合理,查看一下待檢測(cè)物體的大小分布情況(例如anchor的預(yù)設(shè)),查看一下圖片大小,查看類別分布情況(例如是否有極端的分布)等等。

二、算法選型

在接到一個(gè)新領(lǐng)域的新任務(wù)時(shí),需要調(diào)研相關(guān)領(lǐng)域算法,對(duì)該領(lǐng)域的發(fā)展有個(gè)大概的了解,掌握一些關(guān)鍵算法(比如歷年的SOTA)的思路。雖然調(diào)研需要花費(fèi)一些時(shí)間,但是這樣在算法選型上可以少做一些實(shí)驗(yàn),性價(jià)比是很高的。站在他們的肩膀上就好了。

不太可取的思路:

在指標(biāo)上太鉆牛角尖。有些算法工程師遇到指標(biāo)在自己數(shù)據(jù)集效果不太好的情況時(shí),立馬換別的算法,或者立馬換個(gè)backbone,或者立馬換個(gè)loss去做實(shí)驗(yàn)。(需要認(rèn)真分析為什么效果不好,是自己訓(xùn)練有問題,還是當(dāng)前數(shù)據(jù)不太適合該算法,是評(píng)測(cè)指標(biāo)不合理,還是評(píng)測(cè)指標(biāo)實(shí)現(xiàn)有問題。)

不進(jìn)行相關(guān)調(diào)研,直接上SOTA算法。這樣做會(huì)有一些不太理想的問題,比如SOTA可能沒有針對(duì)自己場(chǎng)景的數(shù)據(jù)做優(yōu)化,比如當(dāng)前任務(wù)是小目標(biāo)居多(通過分析數(shù)據(jù)得到),雖然SOTA的總的mAP很高,但是small mAP比之前算法還低,那就要慎用 。比如SOTA用的是很重的網(wǎng)絡(luò),但是任務(wù)是速度快,或者速度與效果兼顧,那也應(yīng)該慎用。

三、基于已有實(shí)現(xiàn)來優(yōu)化算法

對(duì)于某個(gè)任務(wù)在選擇好合適的算法以后,如果有相應(yīng)的效果比較好的開源實(shí)現(xiàn),最好用開源項(xiàng)目進(jìn)行算法的復(fù)現(xiàn)。

這樣做的目的:

更方便深入的理解算法的具體細(xì)節(jié),比如可能代碼在文章沒有提到的某些層上偷摸的加了一個(gè)shift操作,比如文章提到的一些trick代碼根本沒有實(shí)現(xiàn),比如代碼用了額外的數(shù)據(jù)訓(xùn)練但文章沒有提到,比如文章描述的數(shù)據(jù)增強(qiáng)方式與代碼的實(shí)現(xiàn)不一樣等。(這些可能發(fā)生在開源復(fù)現(xiàn)者沒有“一比一”復(fù)現(xiàn)論文的情況,也可能發(fā)生在論文作者自己沒有實(shí)現(xiàn)的情況)

能快速掌握算法的基礎(chǔ)性能,比如復(fù)現(xiàn)算法大概的運(yùn)行速度(特別是文章沒給出的時(shí)候)和達(dá)到的效果

不用自己做一些無用功。要知道重寫和調(diào)試一份新的模型不僅費(fèi)時(shí)費(fèi)力,可能還因?yàn)槲恼聸]有寫清楚一些細(xì)節(jié),導(dǎo)致你幾乎無法復(fù)現(xiàn)到相應(yīng)的結(jié)果。

利用開源項(xiàng)目已復(fù)現(xiàn)的算法(這里復(fù)現(xiàn)不是完全能與代碼作者或者文章作者結(jié)果一致,可能是數(shù)據(jù)增強(qiáng),隨機(jī)種子導(dǎo)致結(jié)果有偏差,但已獲取到八九不離十的結(jié)果)來改進(jìn)模型可以有下面幾點(diǎn)思路:

代碼是否實(shí)現(xiàn)了文章一些漲點(diǎn)的trick,如果沒有可以嘗試

文章一般會(huì)分析實(shí)驗(yàn)結(jié)果,后面會(huì)有作者自己的一些觀點(diǎn),他們可能會(huì)說明為什么有些情況文章的算法效果較差

有些文章會(huì)寫他們將來可能的工作,這也是一個(gè)改進(jìn)思路

需要可視化查看實(shí)驗(yàn)結(jié)果(特別是跑自己的數(shù)據(jù)集),結(jié)果可能與作者在公開數(shù)據(jù)集展示出的問題不一樣,分析效果差的原因

四、從0復(fù)現(xiàn)算法

復(fù)現(xiàn)算法是一個(gè)比較大的工程,這里的大工程不只是指代碼多或者工作量大,而是沒有一個(gè)基礎(chǔ)版,導(dǎo)致引入的不可控因素太多調(diào)試?yán)щy,比如數(shù)據(jù)接口是否有問題,模型是否搭建正確,訓(xùn)練方式是否存在問題。

在復(fù)現(xiàn)算法或者優(yōu)化算法是比較頭疼的是一切訓(xùn)練正常,loss曲線比你想象的還好看,訓(xùn)練了一年后(just kidding, maybe longer),測(cè)試一下發(fā)現(xiàn)效果奇差無比,都不好意思說是自己寫的代碼。一年就過去了。

這里有下面一些建議:

盡量測(cè)試每一個(gè)細(xì)節(jié),從數(shù)據(jù)接口,模型,到loss輸出,到最終的評(píng)測(cè)代碼。保證每個(gè)部分都可控。

測(cè)試數(shù)據(jù)接口,從單進(jìn)程,batch為1開始,方便打印數(shù)值進(jìn)行對(duì)比。

不要隨意的去隨機(jī),盡量保證問題可以復(fù)現(xiàn)比如先不要加入隨機(jī)數(shù)據(jù)增強(qiáng),模型的隨機(jī)種子固定。

用少量的數(shù)據(jù),這樣可以快速的做實(shí)驗(yàn),也可以讓模型快速過擬合。模型能過擬合可以大概確定模型是可以學(xué)到點(diǎn)什么的。

盡量按照原文來復(fù)現(xiàn),在復(fù)現(xiàn)前,先不要過多的添加自己獨(dú)特的想法。比如訓(xùn)練參數(shù),模型backbone,數(shù)據(jù)增強(qiáng)方式等等先按照文章來。不清楚的點(diǎn)可以嘗試email作者或者尋找相關(guān)圈子討論。

日志打印全,比如解loss為nan的情況,需要知道是forward的導(dǎo)致還是bp導(dǎo)致。

五、一些或許有用的訓(xùn)練建議

保證數(shù)據(jù)是可靠的

有預(yù)訓(xùn)練模型最好用上

通常學(xué)習(xí)率參數(shù)小于1e-5基本沒啥用了,比如cosine或者step操作,最后的學(xué)習(xí)率到1e-5就好了。當(dāng)然特殊任務(wù)不一樣

bn在訓(xùn)練時(shí)記得打開更新(特別是tf的小伙伴,容易漏),不然可能出現(xiàn)的問題是訓(xùn)練時(shí)loss下降很快,測(cè)試感覺模型就沒收斂

sgd是很棒的,但是實(shí)驗(yàn)用adam或許收斂速度更好

如果想要很好的壓榨出一個(gè)算法的性能,請(qǐng)先保證當(dāng)前模型能到達(dá)相應(yīng)的性能再去壓榨。而不是盲目的換模塊,瘋狂調(diào)參,那樣可能只是浪費(fèi)時(shí)間

不要太相信自己的調(diào)參技術(shù),在沒有一個(gè)較好的baseline情況下,調(diào)參不會(huì)有質(zhì)的飛躍(除非是之前參數(shù)造成了某種bug)

數(shù)據(jù)小時(shí),使用了預(yù)訓(xùn)練模型記得固定前幾層的模型參數(shù),還可以用小點(diǎn)的學(xué)習(xí)率

loss balance有時(shí)候很有用

重復(fù)訓(xùn)練可能可以提升點(diǎn)數(shù),將一個(gè)模型訓(xùn)練好后,用訓(xùn)練好的模型做預(yù)訓(xùn)練模型載入,繼續(xù)用同一套參數(shù)訓(xùn)練。有點(diǎn)像CyclicLR(https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.CyclicLR.html#torch.optim.lr_scheduler.CyclicLR)

DL沒有像機(jī)器學(xué)習(xí)有那么多公式支撐,很多都是make sense就做個(gè)實(shí)驗(yàn)來驗(yàn)證,所以盡量多閱讀論文,看看別人的實(shí)驗(yàn),這樣就可以減少不必要的實(shí)驗(yàn)

這篇文章是為了分享自己的一些心得,希望讀者能用得上,如果有嚴(yán)重錯(cuò)誤還請(qǐng)告知,不想誤導(dǎo)他人

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4775

    瀏覽量

    97636
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3694

    瀏覽量

    51954
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8546

    瀏覽量

    136535

原文標(biāo)題:一個(gè)算法工程師復(fù)現(xiàn)算法的踩坑總結(jié)

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    性能測(cè)試調(diào)優(yōu)實(shí)戰(zhàn)與探索(存儲(chǔ)模型優(yōu)化+調(diào)用鏈路分析)

    分析、流量分析、壓測(cè)實(shí)施和剖解調(diào)優(yōu)等主要環(huán)節(jié)中,引發(fā)對(duì)于系統(tǒng)能力底盤夯實(shí)和測(cè)試策略改進(jìn)的諸多思考。 在性能測(cè)試階段,剖析系統(tǒng)能力實(shí)現(xiàn)及調(diào)優(yōu)方案,探索更優(yōu)解及性能測(cè)試策略的提升空間。 ? ? 二、熱點(diǎn)數(shù)據(jù)存儲(chǔ)模型壓測(cè)
    的頭像 發(fā)表于 01-12 14:46 ?409次閱讀
    性能測(cè)試<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>實(shí)戰(zhàn)與探索(存儲(chǔ)<b class='flag-5'>模型</b>優(yōu)化+調(diào)用鏈路分析)

    在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型一些經(jīng)驗(yàn)

    本帖欲分享在Ubuntu20.04系統(tǒng)中訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型一些經(jīng)驗(yàn)。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓(xùn)練框架,目標(biāo)是訓(xùn)練個(gè)手寫數(shù)字識(shí)別的神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 10-22 07:03

    HarmonyOSAI編程智慧調(diào)優(yōu)

    優(yōu)任務(wù)或打開本地已有的調(diào)優(yōu)數(shù)據(jù)文件。 等待AI分析完成各階段耗時(shí)情況??梢宰箧I選中階段名稱,點(diǎn)擊Analyze,進(jìn)步分析該階段的具體耗時(shí)信息,或點(diǎn)擊View Lane,在右側(cè)查看具
    發(fā)表于 09-01 15:15

    UWB自動(dòng)跟隨技術(shù)原理、算法融合優(yōu)化和踩實(shí)錄

    UWB為什么是最靠譜的自動(dòng)跟隨技術(shù)?原理是什么?需要做什么算法融合、優(yōu)化?我們?cè)陂_發(fā)過程中踩過的。
    的頭像 發(fā)表于 08-14 17:45 ?1364次閱讀
    UWB自動(dòng)跟隨技術(shù)原理、<b class='flag-5'>算法</b>融合優(yōu)化和踩<b class='flag-5'>坑</b>實(shí)錄

    HarmonyOS AI輔助編程工具(CodeGenie)智慧調(diào)優(yōu)

    或打開本地已有的調(diào)優(yōu)數(shù)據(jù)文件。 等待AI分析完成各階段耗時(shí)情況。可以左鍵選中階段名稱,點(diǎn)擊Analyze,進(jìn)步分析該階段的具體耗時(shí)信息,或點(diǎn)擊View Lane,在右側(cè)查看具體的泳道信息。 點(diǎn)擊分析
    發(fā)表于 08-14 11:12

    Linux網(wǎng)絡(luò)性能調(diào)優(yōu)方案

    在當(dāng)今高并發(fā)、大流量的互聯(lián)網(wǎng)環(huán)境下,網(wǎng)絡(luò)性能往往成為系統(tǒng)的瓶頸。作為名資深運(yùn)維工程師,我在生產(chǎn)環(huán)境中遇到過無數(shù)次因?yàn)門CP/IP參數(shù)配置不當(dāng)導(dǎo)致的性能問題。今天分享套完整的Linux網(wǎng)絡(luò)性能
    的頭像 發(fā)表于 08-06 18:01 ?1121次閱讀

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務(wù)環(huán)境中,網(wǎng)絡(luò)性能往往成為K8s集群的瓶頸。本文將深入探討如何通過精細(xì)化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點(diǎn)網(wǎng)絡(luò)性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?860次閱讀

    Linux系統(tǒng)性能調(diào)優(yōu)方案

    關(guān)鍵要點(diǎn)預(yù)覽:本文將深入解析Linux系統(tǒng)性能瓶頸的根本原因,提供可直接落地的調(diào)優(yōu)方案,讓你的系統(tǒng)性能提升30-50%!
    的頭像 發(fā)表于 08-06 17:49 ?753次閱讀

    MySQL配置調(diào)優(yōu)技巧

    上個(gè)月,我們公司的核心業(yè)務(wù)系統(tǒng)突然出現(xiàn)大面積超時(shí),用戶投訴電話不斷。經(jīng)過緊急排查,發(fā)現(xiàn)是MySQL服務(wù)器CPU飆升到99%,大量慢查詢堆積。通過系列配置調(diào)優(yōu)和SQL優(yōu)化,最終在30分鐘內(nèi)恢復(fù)了服務(wù)。
    的頭像 發(fā)表于 07-31 10:27 ?505次閱讀

    Nginx在企業(yè)環(huán)境中的調(diào)優(yōu)策略

    Nginx作為現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中最重要的Web服務(wù)器和反向代理服務(wù)器,其性能調(diào)優(yōu)對(duì)企業(yè)級(jí)應(yīng)用的穩(wěn)定性和效率至關(guān)重要。本指南將從運(yùn)維實(shí)踐角度出發(fā),詳細(xì)介紹Nginx在企業(yè)環(huán)境中的各種調(diào)優(yōu)
    的頭像 發(fā)表于 07-14 11:13 ?530次閱讀

    在FX2LP USB上配置GPIF中斷時(shí)遇到一些問題,求解決

    你好,我在 FX2LP USB 上配置 GPIF 中斷時(shí)遇到一些問題。 我啟用了 INT4 中斷并從 GPIF 中選擇了源 INT4,然后啟用了 GPIF 完成中斷,但我看不到中斷 4 工作。 我該如何做呢?
    發(fā)表于 05-06 08:00

    Modbus TCP通信的那些!你遇到過幾個(gè)?

    總結(jié),手把手教你逆襲甩鍋。Modbus TCP常見問題主要包括連接建立、錯(cuò)誤代碼識(shí)別、數(shù)據(jù)處理和地址沖突等。 以下是一些常見問題的解答: 問題: 如何判斷Modbus TCP連接是否建立? 答:進(jìn)行
    的頭像 發(fā)表于 04-16 17:17 ?1368次閱讀
    Modbus TCP通信的那些<b class='flag-5'>坑</b>!你<b class='flag-5'>遇到</b>過幾個(gè)?

    IGBT模塊的反向恢復(fù)現(xiàn)

    IGBT模塊的反向恢復(fù)現(xiàn)象是指在IGBT關(guān)斷時(shí),其內(nèi)部集成的續(xù)流二極管(FWD)從正向?qū)顟B(tài)轉(zhuǎn)變?yōu)榉聪蚪刂範(fàn)顟B(tài)過程中出現(xiàn)的一些特定物理現(xiàn)象和電氣特性變化。
    的頭像 發(fā)表于 03-13 14:39 ?3963次閱讀
    IGBT模塊的反向恢<b class='flag-5'>復(fù)現(xiàn)</b>象

    HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-DevEco Profiler性能問題定位深度錄制

    ”。創(chuàng)建后的分析任務(wù),會(huì)顯示在界面左側(cè)的任務(wù)列表中。 4:調(diào)優(yōu)詳情,顯示具體的調(diào)優(yōu)內(nèi)容。 配置并確認(rèn)會(huì)話環(huán)境: 在右邊錄制詳情區(qū)域,工具控制欄上有很多小圖標(biāo),鼠標(biāo)放上去會(huì)有
    發(fā)表于 02-24 16:06

    xgboost超參數(shù)調(diào)優(yōu)技巧 xgboost在圖像分類中的應(yīng)用

    的成績(jī)。然而,XGBoost模型涉及眾多超參數(shù),這些參數(shù)的組合和調(diào)優(yōu)對(duì)于模型性能至關(guān)重要。以下是一些XGBoost超參數(shù)
    的頭像 發(fā)表于 01-31 15:16 ?2397次閱讀