Page 87 - 软件工程与项目管理
P. 87

第三章 计算机视觉与大数据



            中使用了 numpy.ndarray,并且有与 Numpy 类似的语法。第二,可以使用 GPU 进
            行运算。由于深度学习算法中涉及大量并行运算,这使得拥有大量核心与高带宽
            的 GPU 与拥有少量高性能核心的 CPU 相比天然更加适合深度学习运算。Theano
            能够将程序自动编译为适用于 GPU 的 CUDA 语言,从而使运算速度提高数十倍
            或更高。第三,编译优化提升速度。Theano 在内部将符号表达式通过计算图结构

            转化为函数,在编译过程中利用多种技巧改变原始输入的函数结构,得到效率更
            高、速度更快的计算图。
                 Theano 具有较强的学术性,在应用方面存在着许多不足,主要缺点有:第

            一,Theano 偏向底层。第二,难以调试。由于 Theano 自动对计算图进行了优化,
            函数内部结构发生改变,因此使用者很难对中间步骤进行调试。第三,编译时间
            长。第四,代码与其他框架相比不够精简。第五,缺乏可使用的预训练模型。由
            于 Theano 在设计与性能上的问题,以及深度学习框架的快速发展,2017 年 LISA
            实验室宣布停止对 Theano 进行开发。

                 Caffe 是由伯克利人工智能研究小组以及视觉和学习中心开发的深度学习框
            架。其核心语言为 C++,提供了 Python、Matlab 相关接口,拥有高性能、清晰简
            洁等优点。Caffe 全称为 Convolutional Architecture for Fast Feature Embedding,因

            此其在卷积神经网络以及常用卷积神经网络的计算机视觉任务上提供了极佳的性
            能。但由于设计上的缺陷,Caffe 缺少灵活性。Caffe 框架中使用“网”表示一切关系,
            “网”由层组成,增加新层需要使用 C++ 和 CUDA 语言进行代码编写,这使不
            熟悉两种语言的使用者难以进行模型扩展。虽然 Caffe 曾在计算机视觉领域有极
            其广泛的应用,但较高的门槛与其他诸多问题使 Caffe 的使用者逐渐流失。其作

            者贾扬清在加入 Facebook 后又提出了升级版 Caffe2 框架,在延续大量 Caffe 设计
            的基础上,解决了许多瓶颈问题。Caffe2 放弃了之前的“网”,而是与其他许多
            深度学习框架一样使用了计算图来进行表示。Caffe2 保持了原有的高性能和简洁

            特点,能够大幅加速计算机视觉模型训练过程,并且增加了便携性,几乎支持在
            所有平台上部署。虽然 Caffe2 框架发展迅速,但在 2018 年 Facebook 将 Caffe2 与
            PyTorch 框架进行了合并,Caffe2 现已并入了 PyTorch 框架。
                 2. 成熟的深度学习框架
                 早期深度学习框架多以科研为目的,由大学实验室进行研发推出,在工业

            使用方面存在着许多局限和不足。而随着深度学习模型和算法的快速发展,早期


                                                                                    77
                                                                                    77
   82   83   84   85   86   87   88   89   90   91   92