如何对SAP Leonardo上的机器学习模型进行重新训练
Jerry之前的兩篇文章介紹了如何通過Restful API的方式,消費SAP Leonardo上預先訓練好的機器學習模型:
如何在Web應用里消費SAP Leonardo的機器學習API
部署在SAP Cloud Platform CloudFoundry環境的應用如何消費
當時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//versions/1
我從網絡上隨便找一張向日葵的照片,
將這張圖片作為HTTP POST的參數發給我重新訓練并且部署好的模型flowerjerrymodel,得到的結果顯示,重新訓練后的模型認為這張圖片有大約87%的可能性是代表向日葵。
接下來有時間的話,我打算搜集一些異形的圖片來訓練,看SAP Leonardo能不能把我桌上掛著的這個異形吊飾識別出來。感謝閱讀。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的如何对SAP Leonardo上的机器学习模型进行重新训练的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD发布RDNA3架构Radeon P
- 下一篇: 如何查看SAP Leonardo模型重新