详情页标题前

阿里云人工智能平台PAI使用TensorFlow实现图片分类-云淘科技

详情页1

本文为您介绍如何使用深度学习框架TensorFlow,快速搭架图像识别的预测模型。

前提条件

  • 已创建OSS Bucket,并完成了OSS授权,详情请参见控制台创建存储空间和云产品依赖与授权:Designer。

    重要

    创建Bucket时,不要开通版本控制,否则可能导致训练失败。

  • 已开启GPU,详情请参见MaxCompute资源。

背景信息

随着互联网发展,产生了大量图片及语音数据。如何有效利用这些非结构化数据,一直是困扰数据挖掘工程师的一道难题。主要原因包括:

  • 通常需要使用深度学习算法,上手门槛高。

  • 通常需要依赖GPU计算引擎,计算资源费用高。

Designer及原PAI-Studio已经预置了使用深度学习框架实现图片分类的模板,您可以直接从模板创建实验,并将其复用到图片鉴黄、物体检测等领域。

数据集

本实验使用CIFAR-10数据集,该数据集包含6万张像素为32*32的彩色图片,共10个类别,分别为飞机、汽车、鸟、毛、鹿、狗、青蛙、马、船及卡车,如下图所示。您可以下载该数据集及相关代码,详情请参见CIFAR 10案例。阿里云人工智能平台PAI使用TensorFlow实现图片分类-云淘科技

使用过程中将该数据集拆分为训练数据集(5万张图片)和预测数据集(1万张图片)。其中5万张图片的训练数据集又被拆分为5个data_batch,1万张图片的预测数据集组成test_batch,如下图所示。阿里云人工智能平台PAI使用TensorFlow实现图片分类-云淘科技

数据准备

将本实验的数据集和相关代码上传至OSS的Bucket路径。例如,在OSS的Bucket下创建aohai_test文件夹及四个子文件夹,如下图所示。阿里云人工智能平台PAI使用TensorFlow实现图片分类-云淘科技每个文件夹的作用如下:

  • check_point:存储实验生成的模型。

    说明

    从原PAI-Studio模板创建实验后,必须手动将TensorFlow组件的checkpoint输出目录/模型输入目录参数配置为已有的OSS文件夹路径,整个实验才能运行。本实验中,将checkpoint输出目录/模型输入目录配置为check_point文件夹路径。

  • cifar-10-batches-py:存储训练数据集和预测数据集对应的数据源文件cifar-10-batcher-py和预测集文件bird_mount_bluebird.jpg。

  • train_code:存储训练数据,即cifar_pai.py。

  • predict_code:存储cifar_predict_pai.py。

使用TensorFlow实现图片分类

以原PAI-Studio的操作步骤为例,来说明如何使用TensorFlow实现图片分类,具体操作步骤如下。

  1. 进入PAI-Designer页面。

    1. 登录PAI控制台。

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在工作空间页面的左侧导航栏选择模型开发与训练 > 可视化建模(Designer),进入Designer页面。

  2. 可视化建模(Designer)页面右上方,单击前往旧版可视化建模(Studio)
  3. 构建实验。

    1. 在原PAI-Studio项目空间的左侧导航栏,单击首页

    2. 模板列表,单击Tensorflow图片分类下的从模板创建

    3. 新建实验对话框,配置参数(可以全部使用默认参数)。

      参数

      描述

      名称

      输入TensorFlow图片分类。

      项目

      不支持修改。

      描述

      输入使用TensorFlow实现图片分类。

      位置

      选择我的实验。

    4. 单击确定

    5. 可选:等待大约十秒钟,在原PAI-Studio控制台的左侧导航栏,单击实验

    6. 可选:在我的实验下,单击TensorFlow图片分类_XX。

      其中我的实验为已配置的实验位置,TensorFlow图片分类_XX为已配置的实验名称(_XX为系统自动添加的实验序号)。

    7. 系统根据预置的模板,自动构建实验,如下图所示。

      阿里云人工智能平台PAI使用TensorFlow实现图片分类-云淘科技

      区域

      描述

      训练数据,系统已自动配置了本实验的训练数据集路径。如果使用其他数据集,只需单击画布中的读OSS数据-1,在右侧字段设置面板,将OSS数据路径配置为存储训练数据的OSS路径。

      预测数据,系统已自动配置了本实验的预测数据集路径。如果使用其他数据集,只需单击画布中的读OSS数据-2,在右侧字段设置面板,将OSS数据路径配置为存储预测数据的OSS路径。

      使用TensorFlow训练模型,只需要手动配置checkpoint输出目录/模型输入目录,其他参数使用默认值即可。该组件的参数与OSS路径下的文件对应关系如下:

      • Python代码文件:配置为OSS路径中的cifar_pai.py。

      • OSS数据源目录:配置为OSS路径中的cifar-10-batches-py文件夹,系统会自动从上游读OSS数据-1节点同步数据。

      • checkpoint输出目录/模型输入目录:配置为OSS路径中的check_point文件夹,用于存储输出模型。

      生成预测结果,只需要手动配置checkpoint输出目录/模型输入目录,其他参数使用默认值即可。该组件的参数与OSS路径下的文件对应关系如下:

      • Python代码文件:配置为OSS路径中的cifar_predict_pai.py。

      • OSS数据源目录:配置为OSS路径中的cifar-10-batches-py文件夹,系统会自动从上游读OSS数据-2节点同步数据。

      • checkpoint输出目录/模型输入目录:需要与TensorFlow训练组件的模型输出目录保持一致,即配置为OSS路径中的check_point文件夹。

  4. 运行实验并查看输出结果。

    1. 单击画布上方的运行

    2. 实验运行结束后,您可以在配置的OSS路径(checkpoint输出目录/模型输入目录)下查看预测结果。

训练代码解析

针对cifar_pai.py文件中的关键代码进行解析:

  • 构建CNN图片训练模型

        network = input_data(shape=[None, 32, 32, 3],
                             data_preprocessing=img_prep,
                             data_augmentation=img_aug)
        network = conv_2d(network, 32, 3, activation='relu')
        network = max_pool_2d(network, 2)
        network = conv_2d(network, 64, 3, activation='relu')
        network = conv_2d(network, 64, 3, activation='relu')
        network = max_pool_2d(network, 2)
        network = fully_connected(network, 512, activation='relu')
        network = dropout(network, 0.5)
        network = fully_connected(network, 10, activation='softmax')
        network = regression(network, optimizer='adam',
                             loss='categorical_crossentropy',
                             learning_rate=0.001)
  • 训练生成模型model.tfl

        model = tflearn.DNN(network, tensorboard_verbose=0)
        model.fit(X, Y, n_epoch=100, shuffle=True, validation_set=(X_test, Y_test),
                  show_metric=True, batch_size=96, run_id='cifar10_cnn')
        model_path = os.path.join(FLAGS.checkpointDir, "model.tfl")
        print(model_path)
        model.save(model_path)

预测代码解析

针对cifar_predict_pai.py文件中的关键代码进行解析。首先读入图片bird_bullocks_oriole.jpg,将其调整为32*32像素大小。然后传入model.predict预测函数评分,返回这张图片对应的十种分类[‘airplane’,’automobile’,’bird’,’cat’,’deer’,’dog’,’frog’,’horse’,’ship’,’truck’]的权重。最后将权重最高的一个分类作为预测结果返回。

    predict_pic = os.path.join(FLAGS.buckets, "bird_bullocks_oriole.jpg")
    img_obj = file_io.read_file_to_string(predict_pic)
    file_io.write_string_to_file("bird_bullocks_oriole.jpg", img_obj)
    img = scipy.ndimage.imread("bird_bullocks_oriole.jpg", mode="RGB")
    # Scale it to 32x32
    img = scipy.misc.imresize(img, (32, 32), interp="bicubic").astype(np.float32, casting='unsafe')
    # Predict
    prediction = model.predict([img])
    print (prediction[0])
    print (prediction[0])
    #print (prediction[0].index(max(prediction[0])))
    num=['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck']
    print ("This is a %s"%(num[prediction[0].index(max(prediction[0]))]))

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/165262.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云人工智能平台PAI图像类-云淘科技

    iTAG提供了图片OCR、目标检测、图像分类的图像类标注模板,创建标注任务时,您需要根据应用场景选择标注模板。本文为您介绍图像类标注模板的应用场景及数据结构。 背景信息 本文介绍以下图像类标注模板的数据结构: 图片OCR 目标检测 图像分类 图片OCR 图片OCR(Optical Character Recognition)任务首先将输入图像中的文字转换为文…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云对象存储OSS如何对OSS的图片进行鉴黄-云淘科技

    为避免阿里云对象存储OSS中存储的图片文件存在涉黄、涉政、涉恐等违法内容,需要对保存在OSS中的图片内容进行鉴黄、涉政暴恐风险检测,规避使用OSS服务时可能遇到的内容违规风险。本文介绍如何通过内容安全服务对OSS存储的图片进行鉴黄。 注意事项 如果存储图片所在的Bucket已开启OSS防盗链,您需要在白名单Referer中添加内容安全控制台URL(https…

    2023年12月10日
  • 阿里云人工智能平台PAI图像内容风控解决方案-云淘科技

    在线上业务的内容生产过程中,为了及时识别其中的高风险内容,PAI提供了图像内容风控解决方案。本文介绍如何基于人工智能算法,快速构建符合业务场景的风控模型,助力您快速识别高风险内容,进而对其进行拦截。 背景信息 在诸多生产内容的场景(例如使用图像进行评论、发布短视频、直播等)中,由于生产内容的范围不受限,因此难免出现高风险内容,您需要识别这些高风险内容,并及时…

    2023年12月10日
  • 文字识别OCR这个问题怎么解决? -云小二-阿里云

    文字识别OCR这个问题怎么解决?基于OCR的图像识别:产品包装图上设计好了产品配方规格等内容,在重复打印的时候要跟原图对比,识别出差异:识别内容、色彩、文字符号是否一致。最好Saas化的产品,可以直接上手使用,不需要二次开发,咱们给客户推荐”图像搜索”这个产品能满足客户需要吗?还是有其他更合适的方案啊? 以下为热心网友提供的参考意见 …

    阿里云 2023年12月20日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云人工智能平台PAI(旧)图像分类训练-云淘科技

    针对tfrecord格式的数据,您可以使用图像分类训练算法组件对其进行模型训练,从而获得用于推理的图像分类模型。本文介绍图像分类训练算法组件的配置方法及使用示例。 前提条件 已开通OSS并完成授权,详情请参见开通OSS服务和云产品依赖与授权:Designer。 使用限制 仅PAI-Designer提供该算法组件。 算法简介 图像分类模块提供各种主流的卷积神经…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。