深度学习算法实现———基础环境

前言:
深度学习是包含在机器学习里的一个特殊领域,他是基于人工神经网络的一种特征学习算法的领域。自卷积神经网络现世以来深度学习开始迅速发展,相比于机器学习它更适合处理超高维特征。现如今深度学习在图像、语音、自然语言方面颇有建树。能运用好深度学习算法去处理实际的事是很多人的一个目标,这里我想分享下我进入深度学习邻域后的一些见解。
这里我主要说的训练一个深度学习算法的基础或前提。主要以python编程语言,pycharm编程软件,anaconda编程环境,目标检测的深度学习算法为线来展开讲解。目标检测在我的训练自己的yolov3算法中,以yolo算法为例实现检测,训练。

搭建环境

  • 环境匹配
    python是一款简便与速度兼备得编程语言,anaconda是python的一个发行版本,其包含了python在内的多个科学包及其依赖项,所以一般直接装anaconda就ok了,但是如果想安装一个新的python环境需要考虑兼容性问题,图1是anaconda与python的版本兼容性:
    深度学习算法实现———基础环境_第1张图片
    这里要做深度学习那么还需要一个深度学习框架,像这种框架的话有很多比如theano、pytorch、tensorflow(keras)等等,theano是一个比较老牌而且非常稳定的框架,由于太底层在目前来说用的人会比较少,大部分是国企;pytorch是基于Python的科学计算包,在实现和构建深层神经网络体系结构充分展现了便捷性和速度,内有GPU加持,更加适用于科研;tensorflow其实跟theano也差不多,比较底层,但是2.0版本的tensorflow结合了keras,keras是一个以tensorflow为基础的高级框架,这跟pytorch的便捷性有的一拼,这也使得tensorflow具有灵活,便捷等特性,所以受到了广大顾客朋友们的喜爱,该框架更加适用于深度学习产品开发;
    这里要叙述的是关于tensorflow的相关配置说明。它做深度学习时有个非常大的亮点就是在做图像任务时cpu和gpu可以无缝衔接处理,所以有个tensorflow-gpu版【前提是你计算机有gpu】,下载tensorflow-gpu有些小小麻烦,就是需要配置CUDA,当然如果麻烦可以直接下载tensorflow就好。图2是tensorflow、python与CUDA的版本兼容性:
    深度学习算法实现———基础环境_第2张图片
    下面是CUDA和你电脑支持的驱动版本匹配,需要大于表中驱动版本才能安装对应的CUDA。查看自己电脑CUDA的驱动版本在路径:控制面板=>硬件和声音=>NVIDIA控制面板=>左下角的系统信息,这可以看到你电脑所装显卡的所有信息,在组件这一栏会给你推荐最新的CUDA版本。
    深度学习算法实现———基础环境_第3张图片
    一般安装tensorflow后需要充分发挥其强大优势则建议安装keras,然而keras和tensorflow也会有版本上的一些兼容问题,下面这张长图可做为安装tensorflow和keras的一个参考:
    深度学习算法实现———基础环境_第4张图片
  • 下载
    anaconda官网下载页面:https://www.anaconda.com/distribution/
    anaconda官网早期版本:https://repo.anaconda.com/archive/
    tensorflow官网安装:https://www.tensorflow.org/install
    NVIDIA驱动程序下载:https://www.nvidia.com/Download/index.aspx?lang=en-us
    NVIDIA驱动程序早期版本下载:https://www.nvidia.com/Download/Find.aspx?lang=en-us
    CUDA官网安装指南:https://docs.nvidia.com/cuda/#installation-guides
    CUDA官网下载:https://developer.nvidia.com/cuda-toolkit-archive
    CUDNN官网下载:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows
    pycharm官网下载页面:https://www.jetbrains.com/pycharm/download/
    pycharm早期版:https://www.jetbrains.com/pycharm/download/other.html
  • 注意
    在做深度学习项目或是学习、创新一个比较大的算法网络时,可能需要到github上去寻找一些算法网络,但这有个痛点就是有一定的环境限制,这就会导致版本冲突的一个风险。所以在这里我推荐写这样一个网络时独立在anaconda创一个新的环境,这个环境可以在anaconda/envs找到,相当于他是一个新领域,不受电脑上其他环境影响。如果第二次想创建一个新的环境,可以直接把第一次创建的环境clone创建第二个独立环境就好,在根据版本需要进行添删。

了解软件

  • 介绍两款标图像数据的程序软件:labelimg、labelme
    labelimg是用矩形框出目标图像,以及打好标签,他主要适用于目标检测比如Fast(er)-RCNN、SSD、YOLO等等;(labelimg安装教程)
    labelme是用折线框出目标图像轮廓,以及对应目标打标签,它主要适用于图像分割,比如FCN、U-net【语义分割】、mask-rcnn、yolact【实列分割】等等。(labelme安装教程)
  • 介绍两款python编程软件:pycharm,jupyter_notebook
    pycharm是款非常强大的软件,它里面可以设置其他python环境,或继承conda环境,他可以在环境设置里面下载其他库或包,当然有时会报安装不了,里面还可以创建多种文件如下:
    深度学习算法实现———基础环境_第5张图片
    它主要适用于查看和修改代码,里面有大量源代码可供学习理解,编译一次性运行代码能够cmd调用,非常省事。缺点就是运行完后变量不能保存不适合局部操作或理解代码。
    jupyter_notebook是anaconda下的一个区块编程软件,功能与pycharm有互补之处,可以区块运行代码保存变量,可供下次使用。他主要适用于工程模块化的编写,比如做特征工程,数据处理等等很不错。缺点就是代码不好查看。

了解数据集

深度学习数据集有很多平台,比如MNIST、MS-COCO、ImageNet、PASCAL VOC、cifar-10(100)等等,下面我简单其中的三个深度学习用得较多的三个数据集。
MNIST可以说是一个非常常见的数据集,里面包含70000张图片被分成了10个组,有60000张训练集数据和10000张测试集数据,用于在实际数据中尝试学习技术和识别模式【图像识别,分类,比如vggnet、Resnet、Googlenet等等】。
MS-COCO是一个大型的、丰富的目标检测,图像分割和字幕数据集,里面包含 330000张图像、80个对象类别。
PASCAL VOC主要有两个版本分别是VOC2007,VOC2012,目前图片数据总共约33000张,检测,分割,人体布局,动作识别。

制作数据集

  • labelImg制作数据集

    下面是描述使用labelimg标注目标并打上标签
    labelimg标注完保存的是一个xml文件,已经是voc数据格式了,所以可以直接用voc格式数据去做目标检测。也可以转coco数据集格式,这里是voc数据格式转coco数据格式。

  • labelme制作数据集
    labelme标注工具和labelImg标注工具界面基本相同,不同的点是创建标注框,这里是点线标出目标物,标出的目标物是一个json文件,这里要转换成coco形式的json文件即把所有用于训练的图或用于验证以及用于测试的图片放入同一文件下,在这里将所有json文件转为coco格式的一个json文件。点击这里获得转换代码

从环境到数据制作就到这了,后面我会推出一个图像分割深度学习算法的流程。
有什么好的建议或疑惑可以多多交流,希望这篇文章对读者深度学习理解有帮助。

你可能感兴趣的:(深度学习,深度学习,图像分割,目标检测,标注软件)