Jerry以前的兩篇文章介紹瞭如何經過Restful API的方式,消費SAP Leonardo上預先訓練好的機器學習模型:web
如何在Web應用裏消費SAP Leonardo的機器學習API
部署在SAP Cloud Platform CloudFoundry環境的應用如何消費api
當時Jerry提到,Product Image Classification API只支持29種產品類別:瀏覽器
若是咱們開發應用時須要支持額外的產品類別,就得須要自行提供該產品類別的圖片並從新訓練。網絡
下面是SAP Leonardo上機器學習模型的從新訓練步驟。app
假設咱們指望從新訓練以後,Product Image Classfication這個模型可以識別出不一樣種類的花,那麼咱們首先得搞到大量花的圖片。Tensorflow的官網上,已經體貼地給想作模型訓練的學習者們,提供了一個作練習用的壓縮包,裏面包含了大量各式花的圖片。
http://download.tensorflow.or...機器學習
SAP Leonardo接受的能用於從新訓練模型的數據集,必須符合下列的層級結構,即training, validation和test三個文件夾下面,分別包含以產品類別命名的字文件夾,且數據規模之比爲8:1:1.異步
有了用於訓練的數據後,下一步就是把這些數據上傳到SAP Leonardo的模型在線存儲平臺上。post
Jerry的前一篇文章部署在SAP Cloud Platform CloudFoundry環境的應用如何消費曾經介紹瞭如何在SAP雲平臺上建立Leonardo機器學習的服務實例,這個實例的service key裏包含了一個IMAGE_RETRAIN_API_URL,能夠用來獲取在線存儲的url:學習
向這個url發送一個HTTP get請求,獲得在線存儲的url:url
把這個url粘貼到瀏覽器裏,輸入postman裏返回的accessKey和secretKey登陸,就能以web的方式訪問這個在線存儲了:
下一步是把本地的訓練文件上傳到這個部署在AWS上的在線存儲上去。
首先用命令行mc config host定義一個名爲sapjerrys3的遠程站點,將上一步從postman得到的AWS在線存儲url,accessKey和secret綁定到這個站點上:
而後使用命令行上傳文件:
mc.exe cp -r C:CodeMachineLearningStudyflowersjerry sapjerrys3data
大概十幾分鍾後,文件上傳完畢:
此時能夠從瀏覽器裏看到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...;model name>/versions/1
我從網絡上隨便找一張向日葵的照片,
將這張圖片做爲HTTP POST的參數發給我從新訓練而且部署好的模型flowerjerrymodel,獲得的結果顯示,從新訓練後的模型認爲這張圖片有大約87%的可能性是表明向日葵。
接下來有時間的話,我打算蒐集一些異形的圖片來訓練,看SAP Leonardo能不能把我桌上掛着的這個異形吊飾識別出來。感謝閱讀。
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":