MindSpore21天實戰營(5)使用PyCharm Kit進行基于Wide&Deep實現CTR預估實戰

      網友投稿 707 2025-04-05

      本次MindSpore實戰營就5個Part:


      MindSpore21天實戰營Part1實戰筆記——使用MindSpore Lite實現移動端圖像分類?https://bbs.huaweicloud.com/blogs/205515

      MindSpore21天實戰營Part2實戰筆記——使用MindSpore和ModelArts實現Bert中文新聞分類?https://bbs.huaweicloud.com/forum/thread-86316-1-1.html

      MindSpore21天實戰營Part3實戰筆記——使用MindSpore實現Resnet50毒蘑菇識別?https://bbs.huaweicloud.com/forum/thread-86319-1-1.html

      MindSpore21天實戰營Part4實戰筆記——使用ModelArts實現YoloV3-DarkNet50籃球檢測模型?https://bbs.huaweicloud.com/blogs/207008

      今天終于迎來了張小白的最后1Part 。

      實驗的內容是跑完CTR的體驗和進階任務。

      這里先嘮嗑兩句CTR。(這些話應該是聽了集美貌與智慧于一身的何蘆微老師的直播?https://www.bilibili.com/video/BV1CV411y7oj/? )

      深度學習的應用包含:自動駕駛、物體識別、人臉識別、語音識別、拍照翻譯和智能推薦

      CTR——Click-Trough-Rate:點擊通過率。點擊某網站的次數/搜索出所有網站的總次數。也就是,給你做推薦時,你有多大的概率進入這個網站。

      CTR預估:通過深度學習實現CTR。

      CTR預估應用:微博的信息流排序;豆瓣的基于看過影視劇類型的推薦;淘寶京東基于點擊和歷史購物的推薦;廣告點擊率的預估。

      推薦算法的流程:

      粗排:Retrieval,選擇前100個應用,可能有經驗和人工的因素

      精排:Ranking,使用Wide&Deep模型做精度更高的排序

      Log:然后不停的微調。

      Wide&Deep模型組成

      好了,其他的技術環節暫時不多說了,有興趣的人可以去聽回放。。

      這次的實驗要求是需要到?https://github.com/mindspore-ai/mindspore-21-days-tutorials/tree/main/chapter5?代碼倉去取。不過因為眾所周知的原因,github不是你想連就能連的:

      雖然你也能慢速地將其下載下來:(每秒30K的速度)

      有時候配圖就會掛了。。

      但是總要有解決方案的吧。。

      目前一個好的辦法是:你在gitee.com上導入github的代碼倉。

      你需要到github找到相關的代碼倉的位置:

      將https的地址復制下來:

      https://github.com/mindspore-ai/mindspore-21-days-tutorials.git

      然后在gitee導入倉庫的界面導入就可以了。

      好了,下面的文檔都在gitee上看,也不會有速度慢,或者圖掛掉的問題了。。

      下面就來瞧瞧最后一課到底要干嘛:

      具體應該是打開?https://github.com/mindspore-ai/mindspore-21-days-tutorials/blob/main/chapter5/wide_deep_ascend/operation.md?這個鏈接,不過既然我已經fork到gitee了,就打開對應的gitee鏈接:

      https://gitee.com/zhanghui_china/mindspore-21-days-tutorials/tree/main/chapter5

      作業給了2種實驗環境,一個是基于ascend的,一個是基于GPU的。

      顯然,ascend環境應該可以從 ModelArts建Notebook就可以了。GPU的環境也能也可以。但是ModelArts昇騰上肯定有強勢的地方。

      所以張小白果斷選擇了?wide_deep_ascend?這種方式,鏈接如下:https://gitee.com/zhanghui_china/mindspore-21-days-tutorials/blob/main/chapter5/wide_deep_ascend/operation.md

      我們打開 目錄下的 operation.md文件

      可以看到以下內容:

      當然,以上先拋去了 進階作業部分。先看看能不能搞定體驗作業。

      張小白按照上述方式,新建了個Notebook:

      下一步:

      確認后進入Notebook。

      點擊New-Teminal進入終端。。

      按operation.md的要求操作了一番,

      。。。(以上省略一萬字。。)

      結果發現根本不對頭,怎么還有docker run gpu環境的內容?

      張小白就問了下群里的?蘆葦老師,得到的答復是:需要看最新的pdf。

      趕緊去下了最新的pdf(親愛的老師,我get到了。。。)

      原來這些作業是:先把 相關資料全下到本地,然后放上obs,建立作業去run 體驗和進階作業,其實跟前幾天是一樣的方式。

      這就好辦了。。

      OBS這里還有個小插曲,早上收到了一條短信:

      原來我的OBS套餐的使用量額度已經用完了。再用就要按量收費了。。。張小白想想這怎么可以?多AZ的OBS服務用完了,那么我這次實驗用單AZ的貝。。。

      張小白花了27元買了 單az 3年的套餐。(9元包年,雖然沒有代金券可用,但是也算是對華為的死忠粉了吧。。)

      然后使用obs browser+ 新建 mindspore-21day-singaz桶。

      一、體驗作業

      下載 預訓練模型?https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/wide_deep.ckpt

      下載體驗作業的數據集(10%全量,mindrecord格式)?https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/train_demo.tar.gz

      本地代碼倉已經從github->gitee克隆號,并且下到了本地。

      在?mindspore-21day-singaz 桶下新建 wind_deep目錄,用以存放體驗的相關文件。

      其中:

      ckpt目錄,存前面的 wide_deep.ckpt預訓練模型

      data目錄,下再建tran_demo,存放 tran_demo.tar.gz文件。

      log目錄。空。

      output目錄。空。

      wide_deep_ascend目錄,存放gitee clone的chapter5目錄下的所有代碼。

      最后如下所示:

      下面在ModelArts的訓練管理-》訓練作業中新建體驗作業:

      其中:

      啟動文件:/mindspore-21day-singleaz/wide-deep/wide_deep_ascend/eval.py

      ckpt_url:?s3://mindspore-21day-singleaz/wide-deep/ckpt/wide_deep.ckpt (這里錯了。。。)

      其他都按照上圖所示輸入。

      點下一步確認后再點提交,開始推理訓練。

      居然運行失敗了。

      其實提示非常清楚:ckpt_path不是一個目錄。說明我錄入的參數ckpt_url寫錯了。仔細看了下 @Helloway 老師的手把手教的文檔,ckpt_url應該是obs桶的一個路徑。。

      所以,將 ckpt_url改為?s3://mindspore-21day-singleaz/wide-deep/ckpt

      再重新提交作業。

      終于運行成功了。

      查看日志:

      這個就是老師想要的結果。趕緊上傳吧。。

      二、進階作業

      需要準備這個1%的數據?https://wide-deep-21.obs.cn-north-4.myhuaweicloud.com/mini_demo.txt

      將其傳到obs 相應data的mini_demo目錄下。

      新建訓練+驗證作業。

      其中:

      代碼目錄:/mindspore-21day-singleaz/wide-deep/wide_deep_ascend/

      啟動文件:/mindspore-21day-singleaz/wide-deep/wide_deep_ascend/precess_train_eval.py

      數據存儲位置:/mindspore-21day-singleaz/wide-deep/data/mini_demo/

      訓練輸出位置:/mindspore-21day-singleaz/wide-deep/output/

      作業日志路徑:/mindspore-21day-singleaz/wide-deep/log/

      其他都默認。

      下一步,確認后

      提交,運行訓練作業。2分35秒后訓練成功。。。

      OBS output生成了 widedeep_train-1_26.ckpt.

      這次的進階作業其實不難(當然是在老師寫好了指南的情況下。。。)

      三、PyCharm Kit的登場

      有人說,張小白,你寫了那么多是在耍我們是吧?請問你標題中的?ModelArts的PyCharm Kit?在哪里?

      看官別急,如果張小白僅僅寫了上面那一部分,那么張小白跟咸魚也就沒啥區別,因為昨天關于籃球比賽的YoloV3-DarkNet50 檢測模型實踐中寫的也是類似的內容,而張小白總不能老是吃老本,得玩些新的東西。

      打開ModelArts,屏幕往下拉,會發現有兩個開發工具,PyCharm ToolKit和ModelArts SDK.

      剛學了一點Python皮毛的 張小白,自然對PyCharm ToolKit有點感興趣,先點擊立即下載:

      然后按照 了解詳情頁的指示,在PyCharm里面安裝這個插件。

      進入File-Settings-Plugins-小齒輪-Install Plugins from Disk

      選擇 下載的?Pycharm-ToolKit-2.1.zip ,PyCharm就會自動將 Huawei EI ModelArts的插件給你安裝好了。

      安裝完之后,PyCharm的菜單下會出現 ModelArts的一系列菜單。

      我們點擊 Edit Credential

      可以錄入我們的AK、SK,實現PyCharm跟服務器端華為云ModeArts的綁定。

      然后通過 Edit Traning job Configuration實現對訓練作業的配置。

      此時,其實只有一個好處,就是代碼可以不上傳到OBS運行了。而是可以選擇本地的python腳本執行。但是訓練數據集這些,還是放到OBS上面去,跟原來一樣。

      張小白就按照這樣的想法去配置體驗作業的 訓練作業吧。。。

      其中:

      MindSpore21天實戰營(5)使用PyCharm Kit進行基于Wide&Deep實現CTR預估實戰

      AI引擎,環境規格這些,跟在ModelArts里面的配置是一樣的。

      略有區別的是下面幾個:

      Boot File Path,就是“啟動文件”,設置為?F:\learn\courses\mindspore-21-days-tutorials\chapter5\wide_deep_ascend\eval.py

      Code Directory,就是“代碼目錄”,設置為?F:\learn\courses\mindspore-21-days-tutorials\chapter5\wide_deep_ascend

      以上兩個是張小白git clone的教程的代碼倉下第五章的相關代碼的目錄和地址。

      OBS Path:/mindspore-21day-singleaz/wide-deep/ckpt/? 這個感覺填的不對,但是可能也沒啥影響。(事實證明這個字段沒啥用)

      Data Path in OBS,訓練集的地址:體驗作業設置為 /mindspore-21day-singleaz/wide-deep/data/tran_demo/

      Running Parameter,運行參數,將原來體驗作業配置的三項拷貝過來,中間用分號做分割:

      tran_url=/mindspore-21day-singleaz/wide-deep/output1;data_url=/mindspore-21day-singleaz/wide-deep/data/tran_demo/;ckpt_url=s3://mindspore-21day-singleaz/wide-deep/ckpt1

      (其實只寫最后一個也能成功:ckpt_url=s3://mindspore-21day-singleaz/wide-deep/ckpt)

      配置完畢后,點擊 Apply and Run可以直接運行,也可以點擊Apply,然后在ModelArts菜單再點擊 Run Traning Job運行這個訓練作業。

      點擊運行后,PyCharm的下面兩個跟蹤狂(框)會顯示以下內容:

      等著作業啟動,右邊的job日志會刷刷的刷(這個看起來比在ModelArts里面需要反復的做頁面刷新看日志好多了。。)

      不一會兒,訓練結束了。

      我們看右邊的作業日志,往上翻一點:

      這也是老師要的結果。。你Get到了嗎?

      補充幾句,這個訓練作業,在ModelArts控制臺一樣是能看到的。。

      日志:

      那我們再進一步做進階作業吧。。。

      打開Edit Traning Job Configurations菜單,點擊Job Name右邊的?加號新建一個訓練作業,如下所示:

      Boot File Path選為:F:\learn\courses\mindspore-21-days-tutorials\chapter5\wide_deep_ascend\train_and_eval.py

      其實Code Directory會自動彈出為:F:\learn\courses\mindspore-21-days-tutorials\chapter5\wide_deep_ascend

      OBS Path:/mindspore-21day-singleaz/wide-deep/

      Data Path in OBS:選擇訓練作業的數據集位置:/mindspore-21day-singleaz/wide-deep/data/mini_demo/

      Running Parameters:tran_url=/mindspore-21day-singleaz/wide-deep/output1;data_url=/mindspore-21day-singleaz/wide-deep/data/mini_demo/

      Event Log開始記錄作業:

      Job-pycharm-wide-deep-fu.0開始記錄本作業的日志:

      耐心等待日志記錄完畢。。。

      貌似完成了,可是。。。

      好像出錯了啊。。啥結果也沒出來。

      到ModelArts里面去看下日志呢?

      真的不行。。看來這個真的問老師了。。

      @Helloway 老師說,我的代碼倉的代碼好像有點舊,比如requirement.txt已經刪除了,我這里還有。。。

      確實,不聽老師的話,是要踩坑的。

      趕緊先把gitee的代碼跟 github做個強制同步。

      這回目錄下好像只有幾個文件了。。

      換個目錄重新拉文件吧(其實也可以做git update的吧,還是新下載吧,省得煩了。。。)

      然后重新配置PyCharm的訓練作業:這回把目錄都換成新的吧。。

      PyCharm重新打開工程:

      配置訓練作業:

      具體配置如下:

      Boot File Path:F:\learn\mindspore-21-days-tutorials\chapter5\wide_deep_ascend\train_and_eval.py (這個經過證明是錯的)

      Code Directory:F:\learn\mindspore-21-days-tutorials\chapter5\wide_deep_ascend

      OBS Path:/mindspore-21day-singleaz/wide-deep/

      Data Path in OBS:/mindspore-21day-singleaz/wide-deep/data/mini_demo/

      查看的日志:

      好像是一樣的問題。。

      再把日志發上去問 蘆葦老師。。。

      老師明確告訴張小白:運行的腳本寫錯了。

      應該用 process_train_eval.py , 小白不愧為小白,選了 tran_and_eval.py.....

      唉。就記得自己要做 訓練和推理作業。有train訓練和eval評估兩個詞就以為是對的。。哪里知道這還有組合關系。。。看來在AI不是那么智能的幫張小白選擇python腳本之前,做對的事情還是要靠張小白自己。。。

      改吧。。

      Boot File Path?F:\learn\mindspore-21-days-tutorials\chapter5\wide_deep_ascend\precess_train_eval.py

      其他不動。重新Apply and Run。。

      終于如老師所愿。。。

      其中感謝 @Helloway 老師的多次耐心回答問題。找出BUG。其實通過PyCharm的ToolsKit插件本身體驗是很簡單的,但是由于張小白眼花,加上盲目的自信等因素,導致花了將近一上午才解決了這個問題(同時發了這個博文),教訓是深刻的,老師的幫助是要感謝的。

      最后還是看一下,PyCharm ToolKit和在ModelArts里面運行的區別吧。

      首先,盡管在PyCharm 配置中沒有配置具體的版本路徑,但是其實 系統會將 本地的代碼傳到 OBS目錄下 以 本地訓練作業為名的目錄下:

      這個目錄下的子目錄由系統自動建立三個目錄:code,log和output。

      code下,系統會把本地的python代碼傳到這個目錄下。

      log下是訓練作業的運行日志:

      output下帶版本號的目錄 (如V0004),應該是多次執行訓練作業后的輸出,也就是訓練好的ckpt文件。

      其實這說明,PyCharm ToolKit,其實是在OBS上建了一個對應的目錄,將運行作業所需的文件同步過去,然后執行。(只是目錄名有些糾結。。)

      所以,并不是張小白想象的,在本地執行Python。。。(甚至本地的Python環境包不全,估計也能跑,張小白就這樣想著。。。。想著想著,就覺得可以把這篇博文發表了。)

      再次感謝? 美麗智慧的何盧微?老師的大力支持。沒有您,就沒有這篇踩坑出坑的文字。(看看這次能不能把老師的名字寫對不。。)

      (全文完,謝謝閱讀)

      AI開發平臺ModelArts EI企業智能 MindSpore Python 昇騰

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:AMORLINC(amorlinc怎么讀)
      下一篇:excel2010制作單元格斜線的教程(excel方格斜線怎么做)
      相關文章
      久久久久亚洲AV综合波多野结衣| 亚洲午夜无码久久久久小说 | 国产精品亚洲综合网站| 亚洲天堂视频在线观看| 亚洲免费一区二区| 国产AV日韩A∨亚洲AV电影| 亚洲AV无码成人精品区日韩 | 豆国产96在线|亚洲| 亚洲精品无码中文久久字幕| 亚洲丶国产丶欧美一区二区三区 | 亚洲伊人久久综合中文成人网| 亚洲成a人片在线播放| 亚洲欧洲精品成人久久奇米网| 香蕉视频亚洲一级| 亚洲AⅤ永久无码精品AA| 亚洲AV成人精品日韩一区18p| 亚洲精品黄色视频在线观看免费资源 | 亚洲av成人无码久久精品| 亚洲精品视频在线| 1区1区3区4区产品亚洲| 亚洲国产精品网站久久| 亚洲一区二区三区深夜天堂| 中文字幕乱码亚洲无线三区| 亚洲第一综合天堂另类专| 亚洲AV成人潮喷综合网| 国产成人亚洲精品狼色在线| 亚洲大尺度无码专区尤物| 久久亚洲AV无码精品色午夜麻| 久久精品亚洲精品国产色婷 | 亚洲一区日韩高清中文字幕亚洲 | 国产成人亚洲综合色影视| 亚洲精品线在线观看| 亚洲黄网站wwwwww| va天堂va亚洲va影视中文字幕| 亚洲熟女精品中文字幕| 国产亚洲漂亮白嫩美女在线| 亚洲中文字幕久久精品无码喷水| 久久亚洲日韩看片无码| 亚洲一区二区三区免费观看| 亚洲精品无码mⅴ在线观看 | 亚洲一区中文字幕在线观看|