如何對SAP Leonardo上的機器學習模型進行重新訓練
Jerry之前的兩篇文章介紹瞭如何透過Restful API的方式,消費SAP Leonardo上預先訓練好的機器學習模型:
當時Jerry提到,Product Image Classification API只支援29種產品類別:
如果我們開發應用時需要支援額外的產品類別,就需要自行提供該產品類別的圖片來重新訓練模型。
下面介紹SAP Leonardo上機器學習模型的重新訓練步驟。
假設我們期望重新訓練之後,Product Image Classfication這個模型能夠識別出不同種類的花,那麼我們首先得搞到大量花的圖片。Tensorflow的官網上,已經體貼地給想做模型訓練的學習者們,提供了一個做練習用的壓縮包,裡面包含了大量各式花的圖片。
http://download.tensorflow.org/example_images/flower_photos.tgz
SAP Leonardo接受的能用於重新訓練模型的資料集,必須符合下圖所示的層級結構,即training, validation和test三個資料夾下面,分別包含以產品類別命名的子資料夾,且資料規模之比為8:1:1.
有了用於訓練的資料後,下一步就是把這些資料上傳到SAP Leonardo的模型線上儲存平臺上。
Jerry的前一篇文章 部署在SAP Cloud Platform CloudFoundry環境的應用如何消費 曾經介紹瞭如何在SAP雲平臺上建立Leonardo機器學習的服務例項,這個例項的service key裡包含了一個IMAGE_RETRAIN_API_URL,可以用來獲取線上儲存的url:
向這個url傳送一個HTTP get請求,得到線上儲存的url:
把這個url貼上到瀏覽器裡,輸入postman裡返回的accessKey和secretKey登入,就能以web的方式訪問這個線上儲存了:
下一步是把本地的訓練檔案上傳到這個部署在AWS上的線上儲存上去。
首先用命令列 mc config host 定義一個名為sapjerrys3的遠端站點,將上一步從postman獲得的AWS線上儲存url,accessKey和secret繫結到這個站點上:
然後使用命令列上傳檔案:
mc.exe cp -r C:\Code\MachineLearningStudy\flowersjerry sapjerrys3\data
大概十幾分鍾後,檔案上傳完畢:
此時可以從瀏覽器裡看到AWS線上儲存上傳完畢的訓練檔案。
現在可以提交一個後臺作業了,讓Leonardo去處理這些上傳好的檔案,ABAP顧問們可以把這個動作理解成在Netweaver事務碼SM36裡定義一個後臺作業並提交。傳送一個HTTP post請求,除了下圖jobName, dataset和modelName需要自己維護外,其他欄位都使用SAP官網上定義的預設值。
這個請求會返回一個後臺作業ID,抄下來後把它拼到url末尾,然後重新傳送一個HTTP get請求,即可查詢到這個作業的執行情況。Jerry重新訓練的時候,等待了大概五分鐘,作業狀態就變為SUCCEEDED了。
因為上一篇和本文做的練習都是在SAP Cloud Platform的CloudFoundry環境中進行的,因此我們也可以用cf命令列來查詢這些作業的執行情況:
cf sapml retraining jobs -m image
如果遇到作業狀態為FAILED的情況,去AWS線上儲存上檢視以作業名稱命名的資料夾,裡面包含了詳細的訓練日誌,可以用作錯誤分析:
在這個訓練好的模型能正式被使用之前,我們還需要對其進行部署,類似ABAP Netweaver裡的“啟用”動作。
和提交訓練的後臺作業類似,模型部署也是一個非同步執行的步驟,提交部署請求後,得到一個部署作業ID:ms-26c5a22c-6d07-4164-8222-a4182969162d
根據這個部署作業ID可以查詢模型部署狀態:
成功部署後,我們就可以用Restful API消費這個模型了,url的格式為:
https://mlfinternalproduction-image-classifier.cfapps.sap.hana.ondemand.com/api/v2/image/classification/models/ <model name>/versions/1
我從網路上隨便找一張向日葵的照片,
將這張圖片作為HTTP POST的引數發給我重新訓練並且部署好的模型 flowerjerrymodel ,得到的結果顯示,重新訓練後的模型認為這張圖片有大約87%的可能性是代表向日葵。
接下來如果有時間的話,Jerry打算蒐集一些異形(Alien)的圖片來訓練,
看SAP Leonardo能不能把我桌上掛著的這些異形吊飾識別出來。感謝閱讀。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2651682/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SAP Leonardo上的機器學習服務提取圖片的特徵向量機器學習特徵
- TorchVision 預訓練模型進行推斷模型
- 使用AutoDL伺服器進行模型訓練伺服器模型
- 【預訓練語言模型】 使用Transformers庫進行BERT預訓練模型ORM
- 如何在Web應用裡消費SAP Leonardo的機器學習APIWeb機器學習API
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型
- 瀏覽器中的機器學習:使用預訓練模型瀏覽器機器學習模型
- 機器學習-訓練模型的儲存與恢復(sklearn)機器學習模型
- 使用Java程式消費SAP Leonardo的機器學習APIJava機器學習API
- 【預訓練語言模型】使用Transformers庫進行GPT2預訓練模型ORMGPT
- 部署在SAP Cloud Platform CloudFoundry環境的應用如何消費SAP Leonardo機器學習APICloudPlatform機器學習API
- 機器學習的訓練集機器學習
- 使用SAP Cloud Platform Leonardo機器學習的測試控制檯CloudPlatform機器學習
- 大模型如何提升訓練效率大模型
- 如何改進手上的機器學習模型機器學習模型
- 如何用Python和機器學習訓練中文文字情感分類模型?Python機器學習模型
- 如何給SAP雲平臺的賬號分配Leonardo機器學習服務的例項機器學習
- 在Mac上訓練機器學習模型,蘋果WWDC釋出全新Create ML、Core ML 2Mac機器學習模型蘋果
- 使用SAP Cloud Platform Leonardo機器學習提取圖片的特徵向量CloudPlatform機器學習特徵
- 如何批次對檔案進行重新命名?
- 100天搞定機器學習:模型訓練好了,然後呢?機器學習模型
- 如何將keras訓練的模型轉換成tensorflow lite模型Keras模型
- 自訓練 + 預訓練 = 更好的自然語言理解模型模型
- BERT預訓練模型的演進過程!(附程式碼)模型
- 大模型訓練效率是推動大模型進化關鍵大模型
- YOLOv9:在自定義資料上進行影像分割訓練YOLO
- [原始碼分析] Facebook如何訓練超大模型 --- (3)原始碼大模型
- [原始碼分析] Facebook如何訓練超大模型---(4)原始碼大模型
- [原始碼分析] Facebook如何訓練超大模型--- (5)原始碼大模型
- [原始碼分析] Facebook如何訓練超大模型---(1)原始碼大模型
- [原始碼分析] Facebook如何訓練超大模型 --- (2)原始碼大模型
- 試用阿里雲GPU伺服器進行深度學習模型訓練阿里GPU伺服器深度學習模型
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- fasttext訓練模型程式碼AST模型
- 監控大模型訓練大模型
- Workshop:產品經理小姐姐手把手教你訓練機器學習模型機器學習模型
- 初創公司如何訓練大型深度學習模型深度學習模型
- 一文講透預訓練模型的改進訓練演算法 ,輕鬆達到State of the Art模型演算法