關(guān)于昇騰眾智項(xiàng)目中提交了5個(gè)模型這件事

      網(wǎng)友投稿 972 2022-05-29

      關(guān)于在昇騰眾智項(xiàng)目中提交了5個(gè)模型這件事

      我負(fù)責(zé)了學(xué)校華為模型遷移的對(duì)接工作,自己也參與其中。項(xiàng)目周期中總共完成了5個(gè)模型的遷移。其中MindSpore模型一個(gè),Tensorflow模型四個(gè)。想通過(guò)這篇博客分享一下模型開(kāi)發(fā)過(guò)程,一起其中遇到的一些問(wèn)題,希望可以和開(kāi)發(fā)者們共同進(jìn)步。

      1.所用到的工具

      昇騰全棧AI軟硬件平臺(tái)產(chǎn)品非常完善,這次我參與的眾籌項(xiàng)目是把給定的幾個(gè)模型在昇騰環(huán)境上跑通訓(xùn)練腳本,精度達(dá)標(biāo)后跑通離線推理。我主要涉及ModelArts平臺(tái)、ModelZoo倉(cāng)庫(kù)、MindSpore和Tensorflow軟件框架三個(gè)產(chǎn)品的使用。

      2.遷移的步驟

      首先是本地跑通模型的代碼,跑通本之后,由于目前昇騰環(huán)境只對(duì)Tensorflow1.15做了適配,所以我們要在本地先把訓(xùn)練腳本遷移到1.15的版本。

      本地跑通之后,需要使用ModelArts來(lái)跑代碼,ModelArts可以提供裝有CANN和Ascend NPU硬件的訓(xùn)練環(huán)境。我當(dāng)時(shí)使用的是Pycharm ToolKit工具,可以很方便的調(diào)試Python代碼,一鍵就能上傳代碼、數(shù)據(jù)集,然后拉起訓(xùn)練任務(wù)。

      當(dāng)你在ModelArts跑通了之后,說(shuō)明你本地的1.15版本移植是正確的,這時(shí)候需要按照模型遷移手冊(cè),指定模型創(chuàng)建的Session下沉到NPU去運(yùn)行。

      調(diào)參、調(diào)參、調(diào)參。

      精度達(dá)標(biāo)后,又要讀離線推理的文檔。主要工作是將模型的ckpt轉(zhuǎn)換成pb,然后使用CANN提供的ATC命令將pb轉(zhuǎn)換成om,最后使用離線推理工具msame運(yùn)行om文件。

      3. 一些經(jīng)驗(yàn)

      3.1keras的遷移和轉(zhuǎn)pb并不比session麻煩

      遷移首先需要解決Tensorflow的版本問(wèn)題,之后就是把Session下沉到NPU。按照遷移手冊(cè)也就是幾行代碼的事情,根據(jù)Tensorflow寫(xiě)法,遷移最長(zhǎng)見(jiàn)的是以下兩類(lèi):

      session.run(config=config)

      keras.backend

      第一類(lèi)是最簡(jiǎn)單的情況,只需要構(gòu)造NPU Session Config,然后傳進(jìn)去即可。keras也只需要通過(guò)backend設(shè)置 NPU Session Config??蚣艿谋举|(zhì)就是session,所以基于keras的模型,NPU Session Config也是使用backend.set_session()方法遷移的。只要通過(guò)keras.backend.get_session()方法獲取到session,那么后續(xù)轉(zhuǎn)ckpt、轉(zhuǎn)pb、轉(zhuǎn)om的步驟都是一樣的。沒(méi)有像文檔中所說(shuō)的,對(duì)keras的支持那么不友好。

      3.2 對(duì)數(shù)據(jù)和模型有充分理解再開(kāi)始工作

      在做模型的過(guò)程中,最經(jīng)典的就是動(dòng)態(tài)shape問(wèn)題。由于TF支持程度一開(kāi)始對(duì)NPU支持不太友好,我們需要規(guī)避動(dòng)態(tài)shape問(wèn)題,很多小伙伴看到報(bào)錯(cuò)就大失所望,其實(shí)只要靜下來(lái)讀一讀代碼,知道了輸入數(shù)據(jù)的形狀,網(wǎng)絡(luò)的結(jié)構(gòu)大致是怎么樣的,就很好解決動(dòng)態(tài)shape問(wèn)題。只需要把shape的第一維度None設(shè)置成給定的batch size,就可以解決大部分問(wèn)題了。

      3.3 離線推理中的模型轉(zhuǎn)換

      模型轉(zhuǎn)換的一般步驟就是先把ckpt轉(zhuǎn)換為pb再轉(zhuǎn)換為om。這個(gè)過(guò)程中,需要你對(duì)模型的輸入數(shù)據(jù)、輸出數(shù)據(jù)的形狀有特別清晰的認(rèn)識(shí)。不然你在使用ATC命令,閱讀msame工具文檔的時(shí)候,會(huì)有很多名詞對(duì)不上。輸入數(shù)據(jù)的形狀固定了,那么網(wǎng)絡(luò)中各個(gè)階段的輸入也就固定了。在完成模型遷移的時(shí)候,一定要慢慢來(lái),把模型和數(shù)據(jù)研究透徹,再開(kāi)始做。

      3.4 離線推理中的數(shù)據(jù)格式

      由于msame工具僅支持使用bin文件的形式進(jìn)行推理,數(shù)據(jù)處理一般都是python中用一個(gè)迭代器取數(shù)據(jù)。我認(rèn)為最好用的方式是使用numpy的tofile()方法,指定文件名為bin即可。但是我在實(shí)踐中發(fā)現(xiàn),有很多om精度不達(dá)標(biāo)的問(wèn)題,都出在tofile()導(dǎo)出的時(shí)候,沒(méi)有給定數(shù)據(jù)格式。如果數(shù)據(jù)精度和tofile()默認(rèn)保存的精度不一樣,那么喂給om之后得到的結(jié)果肯定也是錯(cuò)的。在tofile()的方法中就要指定好數(shù)據(jù)精度,在pb轉(zhuǎn)om的過(guò)程中,要保證輸入數(shù)據(jù)的精度和tofile()時(shí)的精度一致。

      4. 總結(jié)和收獲

      要增強(qiáng)對(duì)問(wèn)題的描述能力,Issue寫(xiě)的好,才能和研發(fā)工程師們高效交流?;仡櫤芏郔ssue,如果某個(gè)問(wèn)題換個(gè)說(shuō)法,可以更快解決

      工欲善其事必先利其器,寫(xiě)代碼不要著急動(dòng)手,要讀完相關(guān)文檔再行動(dòng)

      5. 比較重要的文檔:

      Wiki上比較重要的教程

      [簡(jiǎn)歷個(gè)人分支&提交代碼]([https://gitee.com/ascend/modelzoo/wikis/002 建立個(gè)人分支&提交PR?sort_id=3282131](https://gitee.com/ascend/modelzoo/wikis/002 建立個(gè)人分支&提交PR?sort_id=3282131))

      如何規(guī)避動(dòng)態(tài)shape

      離線推理案例分享

      關(guān)于在昇騰眾智項(xiàng)目中提交了5個(gè)模型這件事

      官方文檔:

      ATC命令文檔

      基于Session.run的遷移

      基于Keras的遷移

      AI 代碼遷移 昇騰

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Python官方文檔學(xué)習(xí)心得(第六篇)
      下一篇:RK3399平臺(tái)開(kāi)發(fā)系列講解(系統(tǒng)篇)1.26、目標(biāo)檢測(cè)模型Nanodet的訓(xùn)練和轉(zhuǎn)換總結(jié)
      相關(guān)文章
      亚洲综合精品第一页| avtt天堂网手机版亚洲| 亚洲日本一线产区和二线| 亚洲色图综合网站| 91亚洲国产成人久久精品网站| 亚洲AV色香蕉一区二区| 亚洲AV一宅男色影视| 亚洲va久久久噜噜噜久久狠狠| 国产亚洲综合色就色| 日韩亚洲人成在线综合日本| 亚洲av最新在线网址| 久久精品亚洲视频| 337p日本欧洲亚洲大胆色噜噜| 久久精品国产亚洲AV无码娇色 | 亚洲人成电影福利在线播放| 亚洲男人第一av网站| 亚洲美女视频一区| 亚洲午夜在线一区| 成人亚洲国产va天堂| 亚洲色精品VR一区区三区| 亚洲人片在线观看天堂无码| 亚洲av无码一区二区三区在线播放| 亚洲国产精品日韩av不卡在线| 日韩亚洲国产综合久久久| 亚洲精品尤物yw在线影院| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 性色av极品无码专区亚洲| 无码天堂va亚洲va在线va| 亚洲国产人成中文幕一级二级| 中文字幕亚洲综合久久菠萝蜜| 亚洲精品国偷自产在线| 亚洲福利视频一区| 亚洲免费黄色网址| 亚洲精品乱码久久久久久蜜桃图片| 麻豆亚洲AV成人无码久久精品| 亚洲日韩国产精品乱| 亚洲av无码国产精品夜色午夜| 亚洲精品无码久久久久久久 | 亚洲色大18成人网站WWW在线播放| 亚洲av午夜电影在线观看| 亚洲国产精品无码久久久久久曰|