百度机器学习BML

    AutoDL作业

    AutoDL是一款自动深度学习产品,利用先进的迁移学习或者神经网络架构搜索技术,针对业务提供数据进行训练。平台提供简单易懂的操作界面,只需几步便可训练、评估、部署模型,给用户以一站式体验。AutoDL适用性广泛,初学者只需提交数据便可得到高品质模型,经验丰富的工程师拿到平台提供的高品质模型后可继续研究。

    新建作业

    左侧导航栏选择“训练-->AutoDL作业”,进入AutoDL作业列表页。点击『新建作业』按钮,进入新建作业流程。

    image.png

    图像分类-迁移学习

    利用已经训练过的卷积神经网络(CNN),结合训练数据微调其中几层,得到适合于我们训练数据的模型,避免了大资源长时间的训练过程,这便是迁移学习的理念。图像分类-迁移学习,针对几百张量级的图片数据,10分钟便可训出一个可用模型给用户,并展示训练过程,包括:预处理结果、训练阶段的loss和acc指标。用户可以在预测服务中直接部署使用此模型。

    配置说明:

    配置名称 是否必须 描述
    作业名称 只能由数字、字母、-或_组成且首位只能是字母,长度小于40个字符
    算法或框架 图像分类-迁移学习
    作业结束是否发短信 作业结束后是否发短信通知用户
    训练数据路径 存放模型训练数据的路径。填写zip压缩包则只用此zip包训练;填写文件夹则使用文件夹下所有zip包训练,文件夹不支持子目录迭代,zip包超过10个只取前10个,目前只支持zip压缩包。
    输出路径 存放模型和日志的路径,作业成功后将模型存放在该路径/{job_id}/model下,日志存放在该路径/{job_id}/log下
    计算资源 BML集群或用户自有cce集群
    资源套餐 深度学习开发卡等GPU单卡套餐
    实例个数 1
    最大运行时间 若作业运行达到最大运行时间,BML会自动强制停止作业,可能造成作业失败

    训练数据格式说明:

    image.png

    • 需要将所有准备好的图片对应的分类以单个文件夹整理,同时将所有文件夹压缩为.zip格式
    • 若图片较多,建议分多个压缩包,最大支持10个压缩包训练。
    • 如果多个压缩包里面分类命名存在一致,系统会自动合并数据,当作一类图片。
    • 分类的命名需要以数字、字母、下划线格式,目前不支持中文格式命名,同时注意不要存在空格
    • 图片说明: (1)图片的扩展名可支持常见的三种:jpg,jpeg,png
      (2)图片大小:暂无限制 (3)每类图片数量:20 <= 每类图片数量;注意:每类图片数量要均衡,模型效果才更好 (4) 图片种类数:2类 <= 图片分类数 <= 200类 (5) 图片总数量:图片总数量 <= 10万张

    示例配置:

    训练数据是从网上下载的cifar10数据。开发人员将数据转化成了符合图像分类-迁移学习算法的输入数据格式(转化的代码可参考transfer_cifar10.py,在python2环境运行并依赖numpy和opencv库)即按照不同的目录来划分图片分类。作为示例,开发人员将每个分类取100张图片,共1000张图片来训练。您可以下载数据后自己进行转化,也可以直接使用我们的公共bos数据进行训练。

    训练数据路径:bos:/bml-public/autodl-demo/data/cifar10-for-transferlearning.zip

    输出路径配置您自己的bos路径。

    image.png

    点击“确定”按钮后,提交作业。

    模型输出格式说明:

    • 输出模型是pytorch格式的模型,以pth后缀结尾,包含网络的权重信息。模型文件存放在用户指定的输出路径/{jobid}/model下,可以用此模型路径做预测服务。

    启动预测服务:

    图像分类-迁移学习作业运行成功后,在作业详情页复制模型输出路径,如: bos:/xxx/yyy/autodl-qianyixuexi/job-8c0yiasq02caa6hf/model/

    • 在预测->预测模型库->新建模型页面,添加图像分类-迁移学习的模型,模型文件路径填写上面的路径。

    image.png

    • 在预测->模板配置库->新建模板页面,新建模板配置,如:

    image.png

    • 在预测->端点管理->新建端点页面中,加载上面的模板,启动预测服务,如:

    image.png

    发送预测请求:

    当预测端点状态为服务中时,可以发送预测服务请求,代码如下:

     #!/usr/bin/env python
     # -*- coding: utf-8 -*-
     import sys
     import json
     import base64
     import requests
     
     IMAGE_PATH = "aaa.jpg"
     ENDPOINT_URL = "http://10.181.114.16:8023/v1/endpoints/yyyy/invocations"
     PARAMS = "?interface=predict&action=predict"
     TARGET_URL = ENDPOINT_URL + PARAMS
     
     def get_request():
         """构造请求"""
         arr_instances = []
         with open(IMAGE_PATH, "rb") as f:
             data = f.read()
         encoded_data = base64.b64encode(data)
         str_data = str(encoded_data)
         obj_instance = {
             "data": str_data,
         }
         arr_instances.append(obj_instance)
         request = {
             "instances": arr_instances,
         }
         return request
         
     if __name__ == '__main__':
         request = get_request()
         json_request = json.dumps(request)
     
         headers = {'Content-type': 'application/json'}
         res = requests.post(TARGET_URL, data = json_request, headers = headers)
         result = res.text
         print(result)

    修改IMAGE_PATH为图片位置,修改ENDPOINT_URL为端点URL,执行上述代码就可以发送预测请求,得到图片分类预测结果。 预测的图片:

    aaa2.jpg

    预测的结果:

    {"result":"[[1.288892149925232, -3.755728244781494, -1.8610944747924805, 6.285534381866455, -1.8683143854141235, 2.2759482860565186, -3.119175672531128, 0.8390857577323914, 1.8015419244766235, -1.3871209621429443]]"}

    结果表示,图片被预测为label 3,猫。

    图像分类-ENAS

    利用先进的神经网络架构搜索技术,针对业务提供数据进行训练,几小时便可完成最优模型搜索以及高品质模型输出。通过用户给定的分好类的图像数据,输出一个训练好的模型给用户,并展示训练过程,包括:预处理结果、每一轮的Metric指标和神经网络结构图、调优结果。

    配置说明:

    配置名称 是否必须 描述
    作业名称 只能由数字、字母、-或_组成且首位只能是字母,长度小于40个字符
    算法或框架 图像分类-ENAS
    作业结束是否发短信 作业结束后是否发短信通知用户
    训练数据路径 存放模型训练数据的路径。填写zip压缩包则只用此zip包训练;填写文件夹则使用文件夹下所有zip包训练,文件夹不支持子目录迭代,zip包超过10个只取前10个,目前只支持zip压缩包。
    输出路径 存放模型和日志的路径,作业成功后将模型存放在该路径/{job_id}/model下,日志存放在该路径/{job_id}/log下
    计算资源 BML集群或用户自有cce集群
    资源套餐 深度学习开发卡等GPU单卡套餐
    实例个数 1
    最大运行时间 若作业运行达到最大运行时间,BML会自动强制停止作业,可能造成作业失败

    训练数据格式说明:

    image.png

    • 需要将所有准备好的图片对应的分类以单个文件夹整理,同时将所有文件夹压缩为.zip格式
    • 若图片较多,建议分多个压缩包,最大支持10个压缩包训练。
    • 如果多个压缩包里面分类命名存在一致,系统会自动合并数据,当作一类图片。
    • 分类的命名需要以数字、字母、下划线格式,目前不支持中文格式命名,同时注意不要存在空格
    • 图片说明: (1)图片的扩展名可支持常见的三种:jpg,jpeg,png
      (2)图片大小:100K <= 图片大小 <= 3M,长宽比在3:1以内,其中最长边需要小于4096px,最短边需要大于30px (3)每类图片数量:50 <= 每类图片数量;注意:每类图片数量要均衡,模型效果才更好 (4) 图片种类数: 2类 <= 图片分类数 <= 200类 (5)图片总数量:图片总数量 <= 10万张

    示例配置:

    训练数据是从网上下载的cifar10数据。开发人员将数据转化成了符合图像分类-ENAS算法的输入数据格式(转化的代码可参考transfer_cifar10.py,在python2环境运行并依赖numpy和opencv库),即按照不同的目录来划分图片分类,并打成zip包。您可以下载数据后自己进行转化,也可以直接使用我们的公共bos数据进行训练。

    训练数据路径:bos:/bml-public/autodl-demo/data/cifar10.zip

    输出路径配置您自己的bos路径。

    image.png

    点击“确定”按钮后,提交作业。

    模型输出格式说明:

    • 输出模型是keras hdf5格式的模型,包含网络结构和权重参数。

    作业列表相关操作

    • 终止:将当前正在运行或排队的作业终止,不再排队,不再运行。终止运行后,作业结果及作业日志不会上传到指定的BOS路径。
    • 克隆:克隆一份作业的配置项,进入新建作业页面。
    • 删除:删除该条作业,如果删除时作业还在排队或运行中,会先终止排队或运行,再删除作业,删除后该作业从作业列表中消失。
    • 查看作业详情:点击作业名称可以进入作业详情,查看作业的作业信息、参数信息、集群信息。
    • 查看运行详情:点击作业名称选择运行详情标签可以进入运行详情,查看作业运行状态、起止时间、日志详情、运行曲线等。

    查看作业结果

    作业运行成功后,会根据作业配置时指定的输出路径,将模型和日志分别存储到对应的 BOS 地址下,用户需要前往 BOS 查看或下载作业模型或者日志。

    如果作业模型或日志无法保存,可能是下列情况:

    • 手动终止作业
    • 作业运行超时被自动终止
    • 作业运行失败

    用户作业失败,可能是下列情况导致:

    • 输入数据与数据格式要求不匹配
    • 输入数据的BOS地址不存在或不可访问
    • 输出路径的bucket不存在或不可访问
    • 训练超时
    上一篇
    机器学习作业
    下一篇
    AutoML作业