如何对SAP Leonardo上的机器学习模型进行重新训练
Jerry之前的兩篇文章介紹了如何通過Restful API的方式,消費(fèi)SAP Leonardo上預(yù)先訓(xùn)練好的機(jī)器學(xué)習(xí)模型:
如何在Web應(yīng)用里消費(fèi)SAP Leonardo的機(jī)器學(xué)習(xí)API
部署在SAP Cloud Platform CloudFoundry環(huán)境的應(yīng)用如何消費(fèi)
當(dāng)時Jerry提到,Product Image Classification API只支持29種產(chǎn)品類別:
如果我們開發(fā)應(yīng)用時需要支持額外的產(chǎn)品類別,就得需要自行提供該產(chǎn)品類別的圖片并重新訓(xùn)練。
下面是SAP Leonardo上機(jī)器學(xué)習(xí)模型的重新訓(xùn)練步驟。
假設(shè)我們期望重新訓(xùn)練之后,Product Image Classfication這個模型能夠識別出不同種類的花,那么我們首先得搞到大量花的圖片。Tensorflow的官網(wǎng)上,已經(jīng)體貼地給想做模型訓(xùn)練的學(xué)習(xí)者們,提供了一個做練習(xí)用的壓縮包,里面包含了大量各式花的圖片。
http://download.tensorflow.org/example_images/flower_photos.tgz
SAP Leonardo接受的能用于重新訓(xùn)練模型的數(shù)據(jù)集,必須符合下列的層級結(jié)構(gòu),即training, validation和test三個文件夾下面,分別包含以產(chǎn)品類別命名的字文件夾,且數(shù)據(jù)規(guī)模之比為8:1:1.
有了用于訓(xùn)練的數(shù)據(jù)后,下一步就是把這些數(shù)據(jù)上傳到SAP Leonardo的模型在線存儲平臺上。
Jerry的前一篇文章部署在SAP Cloud Platform CloudFoundry環(huán)境的應(yīng)用如何消費(fèi)曾經(jīng)介紹了如何在SAP云平臺上創(chuàng)建Leonardo機(jī)器學(xué)習(xí)的服務(wù)實(shí)例,這個實(shí)例的service key里包含了一個IMAGE_RETRAIN_API_URL,可以用來獲取在線存儲的url:
向這個url發(fā)送一個HTTP get請求,得到在線存儲的url:
把這個url粘貼到瀏覽器里,輸入postman里返回的accessKey和secretKey登錄,就能以web的方式訪問這個在線存儲了:
下一步是把本地的訓(xùn)練文件上傳到這個部署在AWS上的在線存儲上去。
首先用命令行mc config host定義一個名為sapjerrys3的遠(yuǎn)程站點(diǎn),將上一步從postman獲得的AWS在線存儲url,accessKey和secret綁定到這個站點(diǎn)上:
然后使用命令行上傳文件:
mc.exe cp -r C:\Code\MachineLearningStudy\flowersjerry sapjerrys3\data
大概十幾分鐘后,文件上傳完畢:
此時可以從瀏覽器里看到AWS在線存儲上傳完畢的訓(xùn)練文件。
現(xiàn)在可以提交一個后臺作業(yè)了,讓Leonardo去處理這些上傳好的文件,ABAP顧問們可以把這個動作理解成在Netweaver事務(wù)碼SM36里定義一個后臺作業(yè)并提交。發(fā)送一個HTTP post請求,除了下圖jobName, dataset和modelName需要自己維護(hù)外,其他字段都使用SAP官網(wǎng)上定義的默認(rèn)值。
這個請求會返回一個后臺作業(yè)ID,抄下來后把它拼到url末尾,然后重新發(fā)送一個HTTP get請求,即可查詢到這個作業(yè)的執(zhí)行情況。Jerry做的時候,等待了大概五分鐘,作業(yè)狀態(tài)就變?yōu)镾UCCEEDED了。
因?yàn)樯弦黄捅疚淖龅木毩?xí)都是在SAP Cloud Platform的CloudFoundry環(huán)境中進(jìn)行的,因此我們也可以用cf命令行來查詢這些作業(yè)的執(zhí)行情況:
cf sapml retraining jobs -m image
如果遇到作業(yè)狀態(tài)為FAILED的情況,去AWS在線存儲上查看以作業(yè)名稱命名的文件夾,里面包含了詳細(xì)的訓(xùn)練日志,可以用作錯誤分析:
在這個訓(xùn)練好的模型能正式被使用之前,我們還需要對其進(jìn)行部署,類似ABAP Netweaver里的“激活”動作。
和提交訓(xùn)練的后臺作業(yè)類似,模型部署也是一個異步執(zhí)行的步驟,提交部署請求后,得到一個部署作業(yè)ID:ms-26c5a22c-6d07-4164-8222-a4182969162d
根據(jù)這個部署作業(yè)ID可以查詢模型部署狀態(tài):
成功部署后,我們就可以用Restful API消費(fèi)這個模型了,url的格式為:https://mlfinternalproduction-image-classifier.cfapps.sap.hana.ondemand.com/api/v2/image/classification/models//versions/1
我從網(wǎng)絡(luò)上隨便找一張向日葵的照片,
將這張圖片作為HTTP POST的參數(shù)發(fā)給我重新訓(xùn)練并且部署好的模型flowerjerrymodel,得到的結(jié)果顯示,重新訓(xùn)練后的模型認(rèn)為這張圖片有大約87%的可能性是代表向日葵。
接下來有時間的話,我打算搜集一些異形的圖片來訓(xùn)練,看SAP Leonardo能不能把我桌上掛著的這個異形吊飾識別出來。感謝閱讀。
要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的如何对SAP Leonardo上的机器学习模型进行重新训练的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD发布RDNA3架构Radeon P
- 下一篇: 如何查看SAP Leonardo模型重新