码迷,mamicode.com
首页 > 其他好文 > 详细

飞桨(PaddlePaddle)框架搭应用于计算机视觉的基础知识记录

时间:2021-03-09 13:42:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:分类   图像   计算机   技术   组元   社区   模型训练   完成   中继   

课程链接:https://aistudio.baidu.com/aistudio/course/introduce/11939?directly=1&shared=1

从整体的视角来看,深度学习模型解决问题的要点,可以近似总结为:数据、模型、优化方法

数据处理

要处理图像分类问题,首先就要了解“图像”在计算机中的存储形式和特征。图像在计算机中以数组的形式存储,每个数组元素代表对应像素的像素值(黑色对应0,白色对应255)。彩色图为3通道,灰度图为单通道;那么一张彩色图就可以表示为:3×height×width,单通道则为1×height×width。
了解了图像的基本特征,接下来就要理解动机。为什么要进行图像处理呢?从数据增强的角度来说,当数据的数量和质量不是很理想时,例如数量过少,或者是特征过于单一,没法从中学到更多特征时,对原始图像进行数据增强就可以很好的解决此类问题。
常用的图像增强方法有:图像翻转、随机角度旋转、图像合并、随机裁剪等。要着重注意的是,如果图像处理的结果会对数据标签造成影响,那么这个操作是达不到预期目的的。例如,对柠檬的好坏进行二分类;若将柠檬的损坏部分进行了裁剪但标签依旧为“好柠檬”,显然这条数据会对模型训练有反效果。可见,数据增强的使用也是有条件的,最好是具体情况具体选择措施。

模型训练

图像分类任务,为了更好的提取图像特征,以卷积操作为基础的卷积神经网络是当今主流的网络结构之一。其特点就是利用“卷积核”对图像进行特征提取,从而更好的让模型学习图像信息。卷积操作的形象理解,就是卷积核在图像上有规律的滑动,并计算特征图。课件截图:
技术图片
所谓训练,就是指模型利用已有数据,通过多次迭代进行参数更新的过程。模型经过训练,能够更好的完成布置的任务(比如图像分类任务,能够正确的分类更多的图像就是衡量模型好坏的指标之一)。
下面演示用飞桨框架搭建一个简单的卷积神经网络模型

import paddle

class MyLeNet(paddle.nn.Layer):
    def __init(self):
        super(MyLeNet, self).__init()
        self.conv1 = paddle.nn.Conv2D(in_channels=1, out_channels=6, kernel_size=5, stride=1)
        self.pool1 = paddle.nn.MaxPool2D(kernel_size=2, stride=2)
        self.conv2 = paddle.nn.Conv2D(in_channels=6, out_channels=16, kernel_size=5, stride=1)
        self.pool1 = paddle.nn.MaxPool2D(kernel_size=2, stride=2)

        self.fc1 = paddle.nn.Linear(256, 120)
        self.fc1 = paddle.nn.Linear(256, 120)
        self.fc1 = paddle.nn.Linear(256, 120)

    def forward(self, x):
        x = self.conv1(x)
        x = F.relu(x)
        x = self.pool1(x)
        x = F.relu(x)
        x = self.conv2(x)
        x = self.pool2(x)
        x = paddle.flatten(x, start_axis=1,stop_axis=-1)
        x = self.fc1(x)
        x = F.relu(x)
        x = self.fc2(x)
        x = F.relu(x)
        out = self.fc3(x)
        return out

这样就完成了一个卷积神经网络的定义。(网络名为LeNet,是比较经典的浅层神经网络之一)。
使用到的相关API可查阅飞桨文档获取解释和使用方法。文档链接:https://www.paddlepaddle.org.cn/
总结:
有幸参加了百度举办的AI零基础课程。之前或多或少的接触过深度学习的部分知识,这次能够更加系统的得到学习,感到受益匪浅。
飞桨给我的最大感受,就是其延展应用的支持。不仅拥有核心框架用于开发,还有推理引擎去支持部署落地,实现“设计+制造”的一条龙服务。当然,作为开源框架,其开源社区也让开发者们有机会发挥自己的想象力去创造各式各样的新奇产品,为人工智能的发展注入更多的活力。
本篇仅简单叙述深度学习在计算机视觉上的应用,还有很多内容尚未写入,后续会从课程中继续总结知识,进行更加详细的学习。

飞桨(PaddlePaddle)框架搭应用于计算机视觉的基础知识记录

标签:分类   图像   计算机   技术   组元   社区   模型训练   完成   中继   

原文地址:https://www.cnblogs.com/gxm1999/p/14503100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!