如何对SAP Leonardo上的机器学习模型进行重新训练

Jerry之前的两篇文章介绍了如何通过Restful API的方式,消费SAP Leonardo上预先训练好的机器学习模型:

如何在Web应用里消费SAP Leonardo的机器学习API
部署在SAP Cloud Platform CloudFoundry环境的应用如何消费

当时Jerry提到,Product Image Classification API只支持29种产品类别:

clipboard1,1

如果我们开发应用时需要支持额外的产品类别,就得需要自行提供该产品类别的图片并重新训练。

clipboard2,2

下面是SAP Leonardo上机器学习模型的重新训练步骤。

假设我们期望重新训练之后,Product Image Classfication这个模型能够识别出不同种类的花,那么我们首先得搞到大量花的图片。Tensorflow的官网上,已经体贴地给想做模型训练的学习者们,提供了一个做练习用的压缩包,里面包含了大量各式花的图片。
http://download.tensorflow.or...

SAP Leonardo接受的能用于重新训练模型的数据集,必须符合下列的层级结构,即training, validation和test三个文件夹下面,分别包含以产品类别命名的字文件夹,且数据规模之比为8:1:1.

clipboard3,3

有了用于训练的数据后,下一步就是把这些数据上传到SAP Leonardo的模型在线存储平台上。

Jerry的前一篇文章部署在SAP Cloud Platform CloudFoundry环境的应用如何消费曾经介绍了如何在SAP云平台上创建Leonardo机器学习的服务实例,这个实例的service key里包含了一个IMAGE_RETRAIN_API_URL,可以用来获取在线存储的url:

clipboard4,4

向这个url发送一个HTTP get请求,得到在线存储的url:

clipboard5,5

把这个url粘贴到浏览器里,输入postman里返回的accessKey和secretKey登录,就能以web的方式访问这个在线存储了:

clipboard6,6

下一步是把本地的训练文件上传到这个部署在AWS上的在线存储上去。

首先用命令行mc config host定义一个名为sapjerrys3的远程站点,将上一步从postman获得的AWS在线存储url,accessKey和secret绑定到这个站点上:

clipboard7,7

然后使用命令行上传文件:
mc.exe cp -r C:CodeMachineLearningStudyflowersjerry sapjerrys3data
大概十几分钟后,文件上传完毕:

clipboard8,8

此时可以从浏览器里看到AWS在线存储上传完毕的训练文件。

clipboard9,9

现在可以提交一个后台作业了,让Leonardo去处理这些上传好的文件,ABAP顾问们可以把这个动作理解成在Netweaver事务码SM36里定义一个后台作业并提交。发送一个HTTP post请求,除了下图jobName, dataset和modelName需要自己维护外,其他字段都使用SAP官网上定义的默认值。

clipboard10,10

这个请求会返回一个后台作业ID,抄下来后把它拼到url末尾,然后重新发送一个HTTP get请求,即可查询到这个作业的执行情况。Jerry做的时候,等待了大概五分钟,作业状态就变为SUCCEEDED了。

clipboard11,11

因为上一篇和本文做的练习都是在SAP Cloud Platform的CloudFoundry环境中进行的,因此我们也可以用cf命令行来查询这些作业的执行情况:

cf sapml retraining jobs -m image

clipboard12,12

如果遇到作业状态为FAILED的情况,去AWS在线存储上查看以作业名称命名的文件夹,里面包含了详细的训练日志,可以用作错误分析:

clipboard13,13

在这个训练好的模型能正式被使用之前,我们还需要对其进行部署,类似ABAP Netweaver里的“激活”动作。

clipboard14,14

和提交训练的后台作业类似,模型部署也是一个异步执行的步骤,提交部署请求后,得到一个部署作业ID:ms-26c5a22c-6d07-4164-8222-a4182969162d

clipboard15,15

根据这个部署作业ID可以查询模型部署状态:

clipboard16,16

成功部署后,我们就可以用Restful API消费这个模型了,url的格式为:https://mlfinternalproduction...;model name>/versions/1

我从网络上随便找一张向日葵的照片,

clipboard18,18

将这张图片作为HTTP POST的参数发给我重新训练并且部署好的模型flowerjerrymodel,得到的结果显示,重新训练后的模型认为这张图片有大约87%的可能性是代表向日葵。

clipboard19,19
clipboard20,20

接下来有时间的话,我打算搜集一些异形的图片来训练,看SAP Leonardo能不能把我桌上挂着的这个异形吊饰识别出来。感谢阅读。

clipboard21,21

clipboard17

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
公众号截图


Jerry Wang的SAP技术专栏
SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使
884 声望
1.6k 粉丝
0 条评论
推荐阅读
Spartacus i18n 配置相关代码的工作原理
具体而言,这段代码中,我们首先导入了 translations 和 translationChunksConfig 变量,它们是Spartacus应用程序中用于存储翻译相关信息的变量。

JerryWang_汪子熙

封面图
超详细的ChatGPT注册教程来了
最近一周,大家都在讨论ChatGPT,一些主流的技术社区更是将ChatGPT吹的神乎其技,那ChatGPT是什么呢?又能给我们带来哪些变化呢?。带着这些问题,我打算先注册并使用 ChatGPT,供想要体验 ChatGPT 的小伙伴们参考。

xiangzhihong3阅读 2.8k评论 3

DeepMind 发布强化学习通用算法 DreamerV3,AI 成精自学捡钻石
内容一览:强化学习是多学科领域的交叉产物,其本质是实现自动决策且可做连续决策。本文将介绍 DeepMind 最新研发成果:扩大强化学习应用范围的通用算法 DreamerV3。关键词:强化学习 DeepMind 通用算法

超神经HyperAI1阅读 929

封面图
学术科研无从下手?27 条机器学习避坑指南,让你的论文发表少走弯路
内容一览:如果你刚接触机器学习不久,并且未来希望在该领域开展学术研究,那么这份为你量身打造的「避坑指南」可千万不要错过了。关键词:机器学习 科研规范 学术研究

超神经HyperAI1阅读 774

封面图
把ChatGPT配置到微信群里,可以对AI提问了!
自从小傅哥用上 ChatGPT 连搜索引擎用的都不多了,很多问题的检索我第一时间都会想到去 ChatGPT 提问试试。它的回答既非常准确又没有一堆广告,对于研发人员来说使用 ChatGPT 简直是个宝贝。

小傅哥1阅读 2.4k评论 1

封面图
AIGC神器CLIP:技术详解及应用示例
编者按:上一期,我们介绍了Diffusion模型的发展历程、核心原理及其对AIGC发展的推动作用。本期,我们将共同走进另一项AI重要突破——CLIP,著名的DALLE和Stable Diffusion均采用了CLIP哦。

Baihai_IDP1阅读 1.3k

封面图
6 大经典机器学习数据集,3w+ 用户票选得出,建议收藏
内容一览:本期汇总了超神经下载排名众多的 6 个数据集,涵盖图像识别、机器翻译、遥感影像等领域。这些数据集质量高、数据量大,经历人气认证值得收藏码住。关键词:数据集 机器翻译 机器视觉

超神经HyperAI1阅读 1.3k

封面图
884 声望
1.6k 粉丝
宣传栏