ModelArts(一)——從快速入門到遠程開發丨【華為云AI賀新年】

      網友投稿 1394 2025-04-01

      ModelArts(一)——從快速入門到遠程開發


      ModelArts(一)——從快速入門到遠程開發

      引言

      一、小白入手ModelArts

      1、準備工作

      1.1創建自動學習項目

      1.2創建桶并上傳數據集

      ModelArts(一)——從快速入門到遠程開發

      引言

      一、小白入手ModelArts

      1、準備工作

      1.1創建自動學習項目

      1.2創建桶并上傳數據集

      2、開始訓練

      2.1標注數據集

      2.2訓練數據集

      2.3部署模型

      2.4linuxAPI調用測試

      二、Python上手ModelArts

      1、準備數據

      1.1創建桶

      1.2創建notebook

      1.3創建Notebook Python開發環境

      2、Python代碼實現

      3、新版Jupyter Lab體驗

      三、自動學習

      1、圖像分類

      1.1數據準備

      1.2創建項目

      1.3訓練模型并部署上線

      2、物體檢測

      2.1準備數據

      2.2標注數據

      2.3訓練并發布

      3、預測分析

      3.1準備數據

      3.2創建項目

      3.3結果預測

      4、聲音分類

      5、文本分類

      四、進階體驗

      1、一鍵完成商超商品識別模型部署

      2、一鍵運行Notebook實現工地鋼筋盤點

      3、使用自動學習0代碼開發圖像分類AI模型

      3.1下載數據集

      3.2創建圖像分類項目

      4、使用訂閱算法構建模型實現花卉識別

      5、使用自定義算法構建模型(手寫數字識別)

      5.1準備數據

      5.2創建算法并訓練

      5.3部署AI應用

      6、使用PyCharm ToolKit在本地進行云上訓練(手寫數字識別)

      五、開發工具體驗——遠程開發

      1、配置本地IDE(PyCharm ToolKit連接)

      2、配置本地IDE(PyCharm手動連接)

      3、VScode遠程開發

      4、手動配置VScode遠程開發

      5、本地工具ssh遠程開發

      使用puttygen將密鑰對.pem文件轉成.ppk文件

      小結

      引言

      關于ModelArts,你可能沒有聽說過很多。但是,你一定知道,云計算在現在日新月異的發展中有不可動搖的地位。你也一定知道notebook這款python應用在python編程中的重大作用,你也聽說過人工智能中圖片可以輕易的被計算機識別,效率大大高過人類;你也了解到Python可以進行智能預測,各項回歸算法可以預測經濟、新冠等的未來發展趨勢。ModelArts就能夠把云計算和我們熟知的jupyter結合起來,讓我們僅僅使用瀏覽器就可以運行各樣的Python程序,還能訓練自己的算法和模型,讓你在十五分鐘左右就能完成一個簡單的圖像分類,今天就讓我們從入門走向算法訓練師!

      一、小白入手ModelArts

      連Python都不熟,我能用modelarts嗎?當然可以。

      1、準備工作

      進入modelarts官網,點擊管理控制臺

      點擊自動學習

      我們去創建一個自動學習:圖像分類項目。

      自定義名稱,這個時候就需要找點數據集。

      沒有桶的話,新建桶即可。為了讓小白也能輕松上手,在這里演示一下,看官大佬們可自行跳過。

      選擇新建桶。

      多AZ存儲能提高您的數據可用性,同時會采用相對較高的計費標準。由于桶存儲是按需計費,我們的訓練圖片較少,這里選擇多AZ存儲即可。

      配置信息:

      立即創建。

      單擊進入新創建的桶nice-photos查看詳情。

      點擊對象,新建文件夾后上傳對象。

      新建文件夾input和output

      進入到input文件夾,上傳文件。

      這里我們選擇標準存儲,上傳從搜索引擎找到的鯨魚和麻雀圖片。如何利用爬蟲查找圖片,可參閱本人另一篇小短文Python批量自動下載獲取圖片。

      本地自定義一個路徑,運行如下python代碼:

      import requests from bs4 import BeautifulSoup import json import eventlet import os urlshu = 1 #url中first = urlshu pictureshu = 1 #圖片下載時的名字(加上異常圖片的第幾張圖片) soupshu = 0 #每35張soup列表中第soupshu個 whileshu = 35 #用于while循環的數(因為每個頁面35張圖片) url1 = 'https://cn.bing.com/images/async?q=' url2 = '&first=%d&count=35&cw=1177&ch=737&relp=35&tsc=ImageBasicHover&datsrc=I&layout=RowBased&mmasync=1' head1 = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64' } #有35張圖片的網頁的請求標頭 head2 = { 'Cookie': 'Hm_lvt_d60c24a3d320c44bcd724270bc61f703=1624084633,1624111635', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64' } #具體圖片的網頁的請求標頭 print('請輸入查找內容:') content = input() if os.path.exists('./%s'%content): pass #創建文件夾'圖片' else: os.mkdir('./%s'%content) print('請輸入查找圖片數量:') number = int(input()) url = url1 + content + url2 #合并成去往有35張圖片的網址 while whileshu: r0 = requests.get(url%urlshu,headers = head1).text #發送get請求并將內容轉化成文本 soup = BeautifulSoup(r0,features="html.parser").find_all('a','iusc') #解析r0并找到a和class=iusc的標簽 data = str(soup[soupshu].get('m')) #將列表soup的第soupshu位中的m提取出來 zidian = json.loads(data) #將data轉化成字典形式 ifopen = 1 #用于下方判斷是否下載圖片 with eventlet.Timeout(1,False): #設定1秒的超時判斷 try: picture = requests.get(zidian['murl'],headers = head2).content #發送get請求并返回二進制數據 except: #print('圖片%d超時異常'%pictureshu) #說明圖片異常 pictureshu -= 1 ifopen = 0 #取消下載此圖片,否則會一直卡著然后報錯 while ifopen == 1: text = open('%s/'%content + '%d'%pictureshu + '.jpg','wb') #將圖片下載至文件夾'圖片'中 text.write(picture) #上行代碼中'wb'為寫入二進制數據 text.close() ifopen = 0 number = number - 1 pictureshu = pictureshu + 1 soupshu = soupshu + 1 whileshu = whileshu - 1 if whileshu == 0: #第一頁圖片下載完成,將網址的first進1 urlshu = urlshu + 1 whileshu = 35 soupshu = 0 if number == 0: #下載圖片數量達標,退出循環 print("查找完成") break

      選擇常用的數據集分割方法,訓練集:驗證集≈2:1,選擇1~20,31~50為訓練集,其余作為驗證集,上傳到input,output作為空文件夾輸出。

      注意:此處不要選擇加密,否則會出現訓練無法讀取數據的情況。

      上傳完成后,回到創建圖像分類項目的界面,選擇輸入輸出位置為剛剛上傳的訓練集和驗證集,創建項目。至此,準備工作完成。

      2、開始訓練

      剛剛上傳的數據是未標注的,下面我們就來標注這些數據集。

      enter添加標簽:鯨、麻雀

      選中其中所有為鯨的圖片,標注為鯨,其余標注為麻雀。

      標注完成,開始訓練!

      點擊開始訓練,訓練規格作為測試,免費學習即可,注意填入自己設定的訓練集比例。

      提交,耐心等待訓練,

      訓練狀態從發布中轉為了訓練中

      訓練完成,時長兩分鐘,準確率100%,非常可人。

      提交,稍事等待。

      部署成功,我們來測試一下。上傳除訓練集以外的圖片,觀察右側輸出結果。

      預測準確度非常好。

      使用curl命令發送預測請求的命令格式也分為文件輸入、文本輸入兩類。

      文件輸入

      curl -kv -F 'images=@圖片路徑' -H 'X-Auth-Token:Token值' -X POST 在線服務地址

      **“-k”**是指允許不使用證書到SSL站點。

      **“-F”**是指上傳數據的是文件,本例中參數名為“images”,這個名字可以根據具體情況變化,@后面是圖片的存儲路徑。

      **“-H”**是post命令的headers,Headers的Key值為“X-Auth-Token”,這個名字為固定的, Token值是用戶獲取到的token值(關于如何獲取token,請參見獲取請求認證)。

      **“POST”**后面跟隨的是在線服務的調用地址。

      curl命令文件輸入樣例:

      curl -kv -F 'images=@/home/data/test.png' -H 'X-Auth-Token:MIISkAY***80T9wHQ==' -X POST https://modelarts-infers-1.cn-north-1.myhuaweicloud.com/v1/infers/eb3e0c54-3dfa-4750-af0c-95c45e5d3e83

      文本輸入

      curl -kv -d '{"data":{"req_data":[{"sepal_length":3,"sepal_width":1,"petal_length":2.2,"petal_width":4}]}}' -H 'X-Auth-Token:MIISkAY***80T9wHQ==' -H 'Content-type: application/json' -X POST https://modelarts-infers-1.cn-north-1.myhuaweicloud.com/v1/infers/eb3e0c54-3dfa-4750-af0c-95c45e5d3e83

      **“-d”**是Body體的文本內容。

      進行token利用api需要注冊IAM用戶,此處不再贅述,請參考官網文檔獲取IAM用戶Token

      二、Python上手ModelArts

      1、準備數據

      參考實驗步驟一中1.2創建桶,配置如下

      ①復制桶配置:不選

      ②區域:華北-北京四

      ③ 數據冗余存儲策略:單AZ存儲

      ④桶名稱:自定義即可(需要記住此名稱以備后續步驟使用)

      ⑤ 存儲類別:標準存儲

      ⑥桶策略:私有

      ⑦ 默認加密:關閉

      ⑧歸檔數據直讀:關閉

      然后新建一個文件夾data

      在ModelArts控制臺左側,點擊開發環境下的Notebook,點擊創建,配置如下:

      ①名稱:自定義

      ②自動停止:根據自己需要時間設置

      ③鏡像:公共鏡像-pytorch1.4-cuda10.1-cudnn7-ubuntu18.04

      ④資源池:公共資源池

      ⑥類型:CPU

      ⑦規格:CPU:2核心8GB

      ⑧存儲配置:默認存儲

      ⑨SSH遠程開發:關閉

      配置好后提交,返回,直到notebook狀態變為運行中。

      點擊“打開”進入Notebook,如果習慣舊版本的Notebook,可以點擊返回舊版,這里新版本打開的是jupyter Lab。這里再次演示一下舊版本如何設計。

      單擊返回舊版,點擊創建

      選擇multiengine2.0

      選擇對象存儲服務,配置如下:

      提交,返回Notebook列表

      狀態變為運行中,打開,進入華為云遠程jupyter界面,選擇新建一個TensorFlow-2.1.0

      點擊untitle,重命名

      測試有關功能

      2、Python代碼實現

      創建好了Notebook環境,接下來就跟我們平時的實驗操作是一樣的了。

      我們來驗證一下。

      簡單輸出

      3、新版Jupyter Lab體驗

      最新版的已經可以打開Lab界面

      啟動后單擊打開

      點擊Python3.7.10即可新建Notebook

      進行基本操作完全沒有問題

      文件讀寫操作,可以看到旁邊生成了文件。

      拖拽可以上傳文件,非常方便。

      三、自動學習

      強化學習需要自己上傳數據集。遵守有關規范。

      1、圖像分類

      數據集要求

      文件名規范:不能有中文,不能有+、空格、制表符。

      保證圖片質量:不能有損壞的圖片目前支持的格式包括jpg、jpeg、bmp、png。

      不要把明顯不同的多個任務數據放在同一個數據集內。

      每一類數據盡量多,盡量均衡。期望獲得良好效果,圖像分類項目中,建議訓練數據集保證每類圖片超過100張。

      為了保證模型的預測準確度,訓練樣本跟真實使用場景盡量相似。

      為保證模型的泛化能力,數據集盡量覆蓋可能出現的各種場景。

      OBS上傳文件規范

      如不需要提前上傳訓練數據,請創建一個空文件夾用于存放工程后期生成的文件。如:“/bucketName/data-cat”。

      如需要提前上傳待標注的圖片,請創建一個空文件夾,然后將圖片文件保存在該文件夾下,圖片的目錄結構如:“/bucketName/data-cat/cat.jpg”。

      如您將已標注好的圖片上傳至OBS桶,請按照如下規范上傳。

      圖像分類數據集要求將標注對象和標注文件存儲在同一目錄,并且一一對應,例如標注對象文件名為

      “10.jpg”

      ,那么標注文件的文件名應為

      “10.txt”

      數據文件存儲示例:

      ├─ │ 10.jpg │ 10.txt │ 11.jpg │ 11.txt │ 12.jpg │ 12.txt

      只支持JPG、JPEG、PNG、BMP格式的圖片。在ModelArts管理控制臺上傳時,單張圖片的大小不能超過5MB,單次上傳的圖片總大小不能超過8MB,數據量大時推薦使用OBS Browser+上傳 。

      標簽名是由中文、大小寫字母、數字、中劃線或下劃線組成,且不超過32位的字符串。

      圖像分類標簽

      “.txt”

      規范如下。

      一行一個標簽:

      cat dog ...

      那這次我們就下載貓、狗、麻雀、鯨各100張

      我已經編寫好了一段代碼供大家使用。mkdir一個路徑用于存放圖片,然后運行即可。

      import requests from bs4 import BeautifulSoup import json import eventlet import os urlshu = 1 #url中first = urlshu pictureshu = 1 #圖片下載時的名字(加上異常圖片的第幾張圖片) soupshu = 0 #每35張soup列表中第soupshu個 whileshu = 35 #用于while循環的數(因為每個頁面35張圖片) url1 = 'https://cn.bing.com/images/async?q=' url2 = '&first=%d&count=35&cw=1177&ch=737&relp=35&tsc=ImageBasicHover&datsrc=I&layout=RowBased&mmasync=1' head1 = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64' } #有35張圖片的網頁的請求標頭 head2 = { 'Cookie': 'Hm_lvt_d60c24a3d320c44bcd724270bc61f703=1624084633,1624111635', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64' } #具體圖片的網頁的請求標頭 print('請輸入查找內容:') content = input() if os.path.exists('./%s'%content): pass #創建文件夾'圖片' else: os.mkdir('./%s'%content) print('請輸入查找圖片數量:') number = int(input()) url = url1 + content + url2 #合并成去往有35張圖片的網址 while whileshu: r0 = requests.get(url%urlshu,headers = head1).text #發送get請求并將內容轉化成文本 soup = BeautifulSoup(r0,features="html.parser").find_all('a','iusc') #解析r0并找到a和class=iusc的標簽 data = str(soup[soupshu].get('m')) #將列表soup的第soupshu位中的m提取出來 zidian = json.loads(data) #將data轉化成字典形式 ifopen = 1 #用于下方判斷是否下載圖片 with eventlet.Timeout(1,False): #設定1秒的超時判斷 try: picture = requests.get(zidian['murl'],headers = head2).content #發送get請求并返回二進制數據 except: #print('圖片%d超時異常'%pictureshu) #說明圖片異常 pictureshu -= 1 ifopen = 0 #取消下載此圖片,否則會一直卡著然后報錯 while ifopen == 1: text = open('%s/'%content + '%d'%pictureshu + '.jpg','wb') #將圖片下載至文件夾'圖片'中 text.write(picture) #上行代碼中'wb'為寫入二進制數據 text.close() full_path = '%s/'%content + '%d'%pictureshu + '.txt' file = open(full_path, 'w',encoding="utf-8") #寫入的語句 file.write('%s'%content) ifopen = 0 number = number - 1 pictureshu = pictureshu + 1 soupshu = soupshu + 1 whileshu = whileshu - 1 if whileshu == 0: #第一頁圖片下載完成,將網址的first進1 urlshu = urlshu + 1 whileshu = 35 soupshu = 0 if number == 0: #下載圖片數量達標,退出循環 print("查找完成,已完成標注") break

      起始編號分別設置為1 101 201 301共400張圖片。

      把利用代碼下載好的圖片和標注歸到一個文件夾dataset-animals。

      比較過癮的400個數據。

      上傳到obs,而一次只能上傳100個。官網說上傳文件較多,使用OBS Browser+,那我們下載了試試。win64-:OBSBrowserPlus-win64,其余下載請參考下載OBS Browser+

      解壓運行

      安裝完成后,利用AK/SK登錄。

      直接添加文件夾,這樣就很爽。

      ModelArts控制臺,自動學習-圖像分類創建項目

      配置如圖。

      需要稍等,會自動根據txt文件標注數據集

      全部標注完成。

      開始訓練。默認配置即可。

      訓練完成,部署上線

      上傳圖片進行檢驗,效果很好。

      2、物體檢測

      數據集需要有xml文件標注,或者未經標注需要現場標注。xml格式參考準備數據_AI開發平臺ModelArts_自動學習_物體檢測_華為云 (huaweicloud.com)

      這里我們選擇上傳圖片后再標注。

      我們從網上下載100張海鷗圖片。

      上傳50張進行標注

      創建物體檢測項目

      挨個標注

      好了,全部變成了已標注,我們同步一下數據集

      部署

      變為運行中后,選擇后50個海鷗圖片開始測試

      不錯,識別比較準確。

      3、預測分析

      我們使用鳶尾花數據集,下載鏈接http://download.tensorflow.org/data/iris_training.csv

      有關鳶尾花數據集的更多信息,可以看我的這篇筆記鳶尾花數據集的各種玩法_kewei chen-CSDN博客

      訓練數據的csv文件不能包含表頭,否則會導致訓練失敗。

      因此我們刪除第一行。在excel里,光標移到1行上,右擊刪除即可。

      輸入數據的格式必須為csv格式,數據文件不包括表頭,有效數據行數必須大于100行。列數必須小于200列,數據總大小不能超過100MB。

      注意:當前由于特征篩選算法限制,標簽列必須是數據集的最后一列。模型訓練將會使用全部數據訓練預測模型,該模型以其他列的數據為輸入,以標簽列的預測值為輸出。

      配置完成,開始訓練。

      鍵入以下內容

      { "data": { "req_data": [{ "attr_1": 5.1, "attr_2": 3.5, "attr_3": 1.4, "attr_4": 0.2 }] } }

      輸出為0,即代表Setosa

      4、聲音分類

      數據準備

      瀏覽記錄 :: 第1頁 :: 異種-canto (xeno-canto.org)

      我們在這里,可以下載公益組織上傳的鳥類聲音。

      利用如下代碼,可以把文本轉為人聲

      import pyttsx3 # 初始化來獲取語音引擎 engine = pyttsx3.init() text=input('請輸入文本') # 去掉文本中的換行符 text = text.replace('\n','') # 保存音頻到本地,格式為mp3 s = input('請輸入你想要保存的文件名') engine.save_to_file(text, '%s'%s+'.mp3') engine.runAndWait()

      使用以下代碼,把mp3聲音轉為wav文件。

      from ffmpy import FFmpeg as mpy # 音頻格式轉換對象 import os # 文件系統操作對象 def read_folder(mp3_folder, wav_folder): ''' 文件夾讀取函數 :param mp3_folder: :param wav_folder: :return: ''' # 遍歷需要轉換的MP3文件夾中的MP3文件 for a in os.listdir(mp3_folder): # 創建MP3文件的絕對路徑 mp3_file = os.path.join(mp3_folder, a) # 調用格式轉換函數 trans_to_wav(mp3_file, wav_folder) def trans_to_wav(mp3_file, wav_folder): ''' 格式轉換格式 :param mp3_file: :param wav_folder: :return: ''' # 格式化文件 file_fmt = os.path.basename(mp3_file).strip() # 獲取文件格式 file_fmt = file_fmt.split('.')[-1] # 校驗文件格式 if file_fmt.strip() != 'mp3': raise Exception('改文件不是MP3格式,請檢查!') elif file_fmt.strip() == '': raise Exception('文件格式出現異常,請檢查!') # 創建wav的文件以供轉換完成后輸出 wav_file_path = os.path.join(wav_folder) wav_file_path = os.path.join(wav_file_path, '{}.{}'.format( os.path.basename(mp3_file).strip().split('.')[0], 'wav' )) # 創建轉換時的命令行參數字符串 cmder = '-f wav -ac 1 -ar 16000' # 創建轉換器對象 mpy_obj = mpy( inputs={ mp3_file: None }, outputs={ wav_file_path: cmder } ) print('執行CMDER 命令:{}'.format(mpy_obj.cmd)) # 執行轉換 mpy_obj.run() if __name__ == '__main__': ''' 主函數入口 ''' # 輸入MP3文件夾 mp3_folder = input('輸入MP3文件夾路徑:\n') # 校驗MP3文件夾是否存在 if mp3_folder.strip() == '': raise Exception('輸入空值,請檢查!') elif mp3_folder.strip() != '': if os.path.exists(mp3_folder) is False: raise Exception('文件路徑不存在') # 輸入wav文件夾路徑 wav_folder = input('輸入wav文件夾路徑:\n') # 校驗wav文件夾是否存在 if wav_folder.strip() == '': raise Exception('輸入空值,請檢查!') #elif wav_folder.strip() != '': # if os.path.exists(wav_folder) is False: # raise Exception('文件路徑不存在') # 調用文件夾讀取批量文件 read_folder(mp3_folder, wav_folder)

      m4a轉wav

      ''' 功能:讀取指定文件夾下的所有mp3文件,轉換為wav文件 用法:修改path路徑 filter改為".m4a",就是遍歷當前目錄下的m4a文件,注釋掉35行的cmd_command 轉換其它的:最主要是用字符串拼接出cmd_command命令 ''' import os path=r'./' filter=[".m4a"] #設置過濾后的文件類型 當然可以設置多個類型 def all_path(dirname): result = []#所有的文件 for maindir, subdir, file_name_list in os.walk(dirname): for filename in file_name_list: apath = os.path.join(maindir, filename)#合并成一個完整路徑 ext = os.path.splitext(apath)[1] # 獲取文件后綴 [0]獲取的是除了文件名以外的內容 if ext in filter: result.append(apath) return result filenames=all_path(path) for filename in filenames: filename=str(filename) temp=filename.split('.') #將.m4a格式轉為wav格式的命令 cmd_command = "ffmpeg -i {0} -acodec pcm_s16le -ac 1 -ar 16000 -y {1}.wav && del {0}".format(filename,temp[0]) # 將.mp3格式轉為wav格式的命令 #cmd_command = "ffmpeg -loglevel quiet -y -i {0} -ar 16000 -ac 1 {1}.wav && del {0}".format(filename, temp[0]) #print(cmd_command) os.system(cmd_command)

      最后那幾個是用計算機合成的人聲。其他的都是鳥類聲音數據集。

      登錄我的obs控制臺

      上傳。

      創建聲音分類項目。

      進行批量標注

      開始訓練

      模型部署

      數據集小了,擬合效果還不夠好。

      增加數據集數目后,效果好多了。

      5、文本分類

      我們使用中文數據集:鏈接

      https://thunlp.oss-cn-qingdao.aliyuncs.com/THUCNews.zip

      模仿上述自動學習步驟即可,此處不在贅述。

      四、進階體驗

      1、一鍵完成商超商品識別模型部署

      訂閱模型:商超商品識別 (huaweicloud.com),前往控制臺

      部署為在線服務

      配置如下,提交

      在在線服務詳情界面,點擊預測

      點擊上傳,我上傳了一張西瓜,預測結果如下

      可以看見,輸出結果為西瓜,占了絕對優勢。

      上傳的蘋果,給我預測成了石榴。。。

      下面是香蕉

      2、一鍵運行Notebook實現工地鋼筋盤點

      進入案例界面基于計算機視覺的鋼筋條數檢測 (huaweicloud.com)

      Run in modelarts

      等待右上角鏈接完成

      鏈接成功,切換規格

      選擇限時免費的GPU,等待切換

      切換完成后,直接run即可

      還可以一鍵自動運行

      3、使用自動學習0代碼開發圖像分類AI模型

      進入AI Gallery,在“資產集市”>“數據”頁面找到四類花卉圖像分類小數據集,單擊右側“下載”。

      配置如圖

      進入ModelArts控制臺,在左側導航欄選擇“自動學習”>“圖象分類”,單擊“創建項目”。

      配置如圖

      開始訓練

      配置如圖,訓練完成后部署

      模型變成了運行中

      上傳玫瑰進行預測,準確度蠻高

      雛菊

      使用完成后,選擇停止

      4、使用訂閱算法構建模型實現花卉識別

      我們這次仍然以花卉識別為例,參考步驟{(四)3.1}下載數據集

      將數據集下載:四類花卉圖像分類小數據集 (huaweicloud.com)

      下載到空目錄:/test-modelartsz/dataset-flower/

      數據集下載后,記住下載路徑,訂閱識別算法圖像分類-ResNet_v1_50 (huaweicloud.com)

      提交

      點擊名稱,進入詳情界面,等待完成。

      完成后,點擊右上角創建AI應用。

      全部為默認即可,立即創建。

      部署為在線服務

      配置如下

      等待部署完成

      點擊預測,選擇上傳

      當然也有預測不準的時候,比如這個玫瑰給我搞成100%的雛菊。。。

      上面這個還比較合理。

      不需要訓練后,可以點擊右上角的停止。

      5、使用自定義算法構建模型(手寫數字識別)

      點此下載數據集:數據集下載鏈接

      解壓后如圖

      進入對象存儲服務,選擇桶。新建一個文件夾,取名test-modelarts-cz/dataset-mnist,會自動生成子路徑。

      上傳**“Mnist-Data-Set”**數據集

      去gitee下載modelarts的工程zipModelArts-Lab

      在新建的路徑上傳對象,上傳,不要加密。

      再新建兩個文件夾mnist-tensorflow-code和mnist-model,存放腳本和模型。

      下載完成后,解壓縮“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes”目錄中獲取到訓練腳本“train_mnist_tf.py”、推理代碼“customize_service.py”和配置文件“config.json”,并上傳至對應OBS路徑。上傳文件至OBS的操作指導請參見上傳文件。

      默認下載路徑:C:\Users122\Downloads\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes

      先上傳第一個,后兩個先不傳。

      modelarts控制臺-算法管理-我的算法-創建

      配置如下圖

      提交即可。

      ModelArts管理控制臺>訓練管理 > 訓練作業(New)>創建

      參數配置:

      “算法>我的算法”:選擇上一步創建的算法

      “訓練輸入”:OBS中的“test-modelarts-cz/dataset-mnist”。

      “訓練輸出”:OBS路徑“test-modelarts-cz/mnist-model”。

      “資源類型 ”:選GPU單卡,GPU: 1*NVIDIA-V100(32GB) | CPU: 8 核 64GB。

      配置如下

      訓練作業已完成。

      推理代碼“customize_service.py”和配置文件“config.json”并上傳至OBS路徑test-modelarts-cz/mnist-model/model中,請查看前面我們的表格。此推理代碼和配置文件為ModelArts為操作樣例提供的示例。也可以基于模型包規范,開發自己所需的推理代碼及配置文件。

      ModelArts控制臺 AI應用

      配置如圖

      部署為在線服務

      配置如圖,其余默認。

      等待部署完成

      開啟預測

      和樣例(點擊另存為)吻合很好,但是和自己寫的就不怎么行了。

      至于為什么不行,本人有一篇小文說明原因:mnist模型為何識別咱自己寫的字就不行?_kewei chen-CSDN博客

      測試完成后,停止應用作業。

      6、使用PyCharm ToolKit在本地進行云上訓練(手寫數字識別)

      在Pycharm中的插件,安裝HUAWEI ModelArts

      單擊ToolKit工具的-

      重啟。

      之后就可以看到頂部有modelarts這一欄了。

      點擊第一行edit credential

      即可把自己的AKSK輸入

      點擊OK,可以看到右下角的提示信息SUCCESS。

      下載mnist數據集數據集下載鏈接

      解壓,上傳至“test-modelarts/dataset-mnist”OBS路徑下

      obs控制臺,對象

      克隆/下載gitee的ModelArts-Lab工程ZIP

      下載完成后,解壓縮“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目錄中獲取到訓練代碼“train_mnist.py”。

      打開PyCharm工具,單擊**“File > New Project”**創建新工程, 在工程目錄下創建“src”文件夾,并將訓練代碼文件“train_mnist.py”拷貝到“src”文件夾下。

      在PyCharm工具欄中,選擇**“ModelArts > Edit Training Job Configuration”**

      配置如圖。

      訓練完成。

      右側的信息提示我們去WEB端控制臺看日志。

      我們去modelarts控制臺,訓練作業舊版看。

      這就是我們剛剛訓練的。點擊名稱查看詳情。

      日志讓我們去找log。

      我們在本地也可以看到同樣的信息。

      這里超過max log length,應該是我把項目名稱起太長了。

      根據提示,我們在obs控制臺的對象中找到log

      點擊下載

      我們看到了最后的成功信息。

      我們在pycharm的左側欄,單擊ModelArts Explorer

      第一版配置出現了一些錯誤,把AI引擎選錯了,選成了TensorFlow,應該是MXNet,因此我們查看,對比兩個版本

      訓練作業生成的模型存儲在“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V0002(根據自己版本決定)”路徑下(其中MA-mnist-11-30-16是Job Name,筆者在配置時填寫了自定義Job Name,則路徑中就是自定義的Job Name),且系統將自動生成“model”文件夾,模型相關的文件存儲在此目錄下。將獲取的“customize_service.py”和“config.json”(在\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes)文件,上傳至OBS的“model”文件夾下。

      現在,在pycharm控制臺,將其部署為在線服務。

      “Environment Variables”:填寫運行參數,設置為“input_data_name=images;input_data_shape=0,1,28,28;output_data_shape=0,10”

      配置如圖

      部署完成后,會自動彈出鏈接。點擊即可進入測試,也可以在控制臺的在線服務中找到。

      下面我們開始預測工作,注意mnist模型需要黑底白字,使用windows畫圖制作幾張即可。

      糟糕,預測超時了。

      查看日志

      報了一個路徑不存在的錯。

      為什么呢?可能是上線的時候出了問題。

      發現了問題的所在:模型路徑錯了,不應該是Using Custom Algorithms to Build Models on ModelArts,而是\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes

      重新來V0003,訓練完成

      上傳,部署配置如圖

      開始部署,部署完成。

      可以了,預測成功。

      預測成了8,把5的概率預測的那么小。。。

      成功,不錯!

      最后,我們清除響應資源。

      停止在線服務

      ModelArts(一)——從快速入門到遠程開發丨【華為云AI賀新年】

      五、開發工具體驗——遠程開發

      1、配置本地IDE(PyCharm ToolKit連接)

      新建一個notebook實例

      創建實例后,新建一個notebook

      在(四)6中已安裝ToolKit的條件下,點擊config

      選擇我們剛剛創建的Conatiner

      apply后需要重啟,首次約需20min進行update python interpreter

      鏈接成功后,右擊即可stop

      單擊即可鏈接

      開啟自動上傳

      可以選擇遠程python解釋器

      首次需要約20min更新解釋器

      上傳后,我們可以看到如圖所示的工程文件已經在云端了。

      可以直接在本地運行,在控制臺可以看到有關信息。

      我們也可以斷點調試,并且讀出每一步變量的情況。

      2、配置本地IDE(PyCharm手動連接)

      手動SSH連接需要下載Pycharm專業版。

      創建一個notebook實例

      在百度上查詢自己的ip地址,配置ssh遠程開發

      在實例詳情界面,查看實例鏈接和端口

      在Pycharm中,選擇File -> Settings -> Tools -> SSH Configurations,單擊+號,增加一個SSH連接配置。

      根據地址填寫配置如圖,選擇密鑰對方式連接,進行測試

      可以進行重命名,起個好聽的名字。

      然后,單擊“Tools > Start SSH Session”,進入虛擬開發環境。

      選擇剛剛起好名字的notebook-kewei

      cat /home/ma-user/README

      執行上面這個命令查看有關配置。

      我們的notebook有兩個環境,執行右側的source命令可以進入具體環境。

      執行which python查看python路徑并拷貝出來,以備后續配置云上Python Interpreter使用

      /home/ma-user/anaconda3/envs/python-3.7.10/bin/python就是Python的路徑

      單擊“File > Settings > Project:PythonProject > Python Interpreter”,單擊設置圖標,再單擊“Add”,添加一個新的interpreter。

      選擇“Existing server configuration”,在下拉菜單中選擇上一步配置好的SSH configuration,單擊“Next”

      解釋器選擇剛剛記錄的解釋器環境,工作文件夾選擇modelarts的默認工作文件夾\home\ma-user\work,勾選自動上傳到服務器。

      完成配置。

      單擊工具欄“Tools >Start SSH session”,選擇SSH Configuration中配置的開發環境。可以執行pip install安裝所需要的包。

      跟我們命令行的一般操作是一樣的。

      我們也可以像上一步一樣,新建py或者ipynb文件,進行遠程開發。

      3、VScode遠程開發

      安裝vscode:Windows用戶直接單擊此處下載:https://update.code.visualstudio.com/1.57.1/win32-x64-user/stable。

      其他系統用戶的-:?https://code.visualstudio.com/updates/v1_57

      配置python解釋器詳見VSCode官方指導。

      下載ToolKit工具包下載鏈接

      右下角提示安裝完成。點擊ModelArts圖標登錄。AKSK我們已經用到多次,不在贅述。可參考:參考鏈接

      開啟了遠程連接的,我們會看到狀態

      初次登錄需要選擇密鑰對。

      建議把keypair文件放到c/user/{{username}}下

      vscode中,選擇遠程系統為Linux系統

      左下角顯示為具體的notebook實例名稱,表示已經連接成功了。

      打開文件件->確定

      左側會顯示目錄結構

      配置python解釋器

      啟動運行和調試。

      在遠程控制臺也可以看見我們剛剛創建的文件

      4、手動配置VScode遠程開發

      安裝vscode的ssh插件

      進行遠程配置

      HOST remote-dev hostname port user ma-user IdentityFile ~/.ssh/test.pem UserKnownHostsFile=/dev/null StrictHostKeyChecking no

      User:登錄用戶只支持ma-user進行登錄

      單擊“File > Preference > Settings > Extensions > Remote-SSH”, 在“Remote Platform”中,單擊“Add Item”選項,設置**“Item”和“Value”**,配置完成后,單擊“OK”

      在SSH控制界面,單擊此處

      連接成功

      安裝云端Python插件

      可以在云端安裝常用的依賴庫。比如常用的NLP處理包spacy。

      在VSCode環境中,執行Ctrl+Shift+P。

      搜Python:Select Interpreter,選擇對應的Python環境。

      單擊頁面上方的“Terminal > New Terminal”,此時打開的的命令行界面即為遠端容器環境命令行。

      進入引擎后,通過執行如下命令安裝依賴包。

      pip install spacy

      5、本地工具ssh遠程開發

      創建一個ssh遠程開發的實例。

      下載并安裝SSH遠程連接工具,以PuTTY為例,下載鏈接。

      下載puttygen,并雙擊運行puttygen。

      單擊“Load”,上傳.pem密鑰(即在創建Notebook實例時創建并保存的密鑰對文件)。

      單擊“Save private key”,保存生成的.ppk文件。.ppk文件的名字可以自定義,例如key.ppk。

      點擊save,即可保存配置,下次可以直接使用

      Translation:UTF-8

      填寫用戶名,必須為ma-user

      打開剛剛制作的ppk密碼文件。

      之后選擇右下角open

      選擇accept

      成功連接到notebook實例。

      cd到work目錄下,創建一個python文件

      運行成功。

      小結

      通過這次的實戰演練,我們學會了基礎的notebook操作,可以在云端實現jupyter lab愉快編程。在自動學習中的圖像、聲音、文本分類和預測,我們體會到了低代碼運作的樂趣,短短十幾分鐘就可以做一個自己的物體識別程序。在遠程開發中,我們可以用自己熟悉的Pycharm、vscode進行開發和程序設計,同時又能接觸云上的算力,為我們的代碼插上翅膀。這次體驗,真是體會到了ModelArts的無限樂趣。

      文章同步發表于CSDN:https://blog.csdn.net/weixin_54227557/article/details/122665425

      【華為云AI賀新年】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/325842

      AI開發平臺ModelArts Python

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

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

      上一篇:ppt的表格線條怎么改(ppt的表格線條怎么改顏色)
      下一篇:怎樣在excel中輸入橫線的三種方法
      相關文章
      亚洲www在线观看| 国产成+人+综合+亚洲专| 亚洲国产系列一区二区三区| 亚洲精品乱码久久久久久下载| 亚洲第一区香蕉_国产a| 国产av无码专区亚洲av桃花庵| 日韩一卡2卡3卡4卡新区亚洲| 亚洲视频在线免费| 久久久久国产亚洲AV麻豆 | 久久亚洲精品中文字幕| 久久精品国产亚洲香蕉| 久久久久亚洲精品成人网小说| 国产成人亚洲综合色影视| 久久亚洲综合色一区二区三区| 亚洲国产精品无码久久SM| 久久精品夜色国产亚洲av| 亚洲精品无码久久久久去q | 麻豆狠色伊人亚洲综合网站| 67194在线午夜亚洲| 国产精品亚洲精品观看不卡| 亚洲综合av一区二区三区不卡| 一本天堂ⅴ无码亚洲道久久| 亚洲国产精品18久久久久久| 色九月亚洲综合网| 亚洲毛片不卡av在线播放一区| 久久久久亚洲精品天堂久久久久久| 国产亚洲精品资在线| 亚洲级αV无码毛片久久精品| 亚洲AV人无码激艳猛片| 亚洲黄色三级视频| 亚洲va在线va天堂va手机| 亚洲一本一道一区二区三区| 亚洲a∨无码一区二区| 亚洲精品成人片在线观看| 国产亚洲精品资在线| 亚洲国产综合精品中文第一区| 亚洲色av性色在线观无码| 97se亚洲国产综合自在线 | 亚洲网站在线观看| 亚洲女人影院想要爱| 亚洲欧美国产日韩av野草社区|