去年5月的時候,Jerry曾經寫了一篇文章:使用Java程序消費SAP Leonardo的機器學習API,而最近另外作的一個項目,須要在Web應用裏作一樣的事情。git
由於有了前一篇文章的鋪墊,避免了不少重複的工做量。本文仍是選擇使用SAP Leonardo裏的一個Product Image Classification API,即給定一張產品的圖片,該API能識別出此產品的類別。程序員
再回顧下這個API的功能:該API的模型是由SAP基於大約5萬張Icecat圖片訓練而成,能區分29種不一樣的類別,這些類別具體羅列於官方文檔上,好比電腦顯示器,數碼相機,外部存儲設備,鍵盤,液晶電視,手機充電器,筆記本和其餘外設等等。若是咱們消費這個API時指定的圖片表明的產品不屬於這29種類別之一,API的表現如何?先賣個關子,文末解答。github
關於如何在api.sap.com裏找到這個API而且在API console裏測試,請參考Jerry以前的文章:使用Java程序消費SAP Leonardo的機器學習API。json
這裏假定咱們已經找到了該API,點擊進入明細頁面,將API Key複製下來,後續的UI5應用須要使用到。api
而後進入SAP雲平臺的Neo環境。Jerry這個練習,使用免費的SAP Cloud Platform Neo測試環境便可。app
在Service列表裏找到WebIDE——咱們將使用WebIDE進行UI5應用的開發。機器學習
Jerry已經開發好了一個UI5應用上傳到個人Github上了:https://github.com/i042416/Ma...學習
你們能夠直接在WebIDE裏clone這個倉庫,或者把倉庫的內容以zip包的形式下載到本地,再使用WebIDE的本地Import功能導入。測試
咱們要告訴UI5應用這個API的url,所以在Neo環境裏建立一個Destination(做用和ABAP Netweaver事務碼SM59裏建立的Destination相同):ui
屬性如上圖所示,由於是Neo測試環境,因此url爲對應的sandbox環境:https://sandbox.api.sap.com/ml
記下這個Destination名稱sapui5ml-api, 由於稍後的UI5代碼裏須要使用。
記得維護額外的屬性WebIDEnabled爲true,這樣該Destination才能在UI5應用裏被使用。點擊Check Connection確保看到綠燈。
打開WebIDE裏UI5工程裏的settings.json文件,將您以前從API console裏拷貝的API Key粘貼到此處:
在項目根目錄下的neo-app.json文件裏,把類型爲destination的target對象的名稱維護成以前在SAP Cloud Platform Cockpit裏建立的destination相同的名稱。
運行這個UI5應用,能看到以下界面:
作一些簡單的測試:
SAP Leonardo的機器學習API,識別出這張圖片有74.7%的可能性是一臺筆記本電腦,13.8%的可能性是鍵盤,11.3%的可能性是Tablets。
點擊按鈕View JSON,能看到調用SAP Leonardo API返回的技術明細。
鼠標的圖片也成功識別出來了:
本文開始曾經提到這個API能識別出29種不一樣的產品類別,如今換一種產品,以下圖:
這是Jerry小時候就很癡迷的《終結者》系列的T800,我在2017年回覆SAP社區上一篇博客時也引用到了這款經典的模型,和阿諾德 - 施瓦辛格那句激勵無數中老年程序員的著名臺詞:I am old but I am NOT OBSOLETE
原文連接: https://blogs.sap.com/2016/12...
言歸正傳,若是但願SAP Leonardo的Product Image Classification API也能成功將T800識別出來,須要作些什麼?
答案是從新訓練模型。具體如何作,Jerry也還在研究,等研究完畢再分享。感謝閱讀。
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":