第一章 DeepLab的创作动机

时间:2021-01-02 15:32:40

这一段时间一直在做深度学习方面的研究,目前市场上的深度学习工具主要分为两大块。一块是基于Python语言的theano;另一块是可以在多个语言上使用并能够在GPU和CPU之间随意切换的Caffe。但是不幸的是,theano对硬件和Python都有着较高的要修。Theano的运行需要基于NVIDIA的显卡,因为Theano的运行需要使用CUDA编程,而CUDA编程是基于NVIDIA显卡的。这为硬件上不满足的deep learning学习者带来了不少麻烦。除此之外,Theano的运行还需要Python的版本高于2.7.0,Numpy的版本高于1.7.0。虽然对Scipy并没有强制要求,但是毫无疑问,优化函数如果诸位不想自己写的话就必须安装Scipy。相比Theano,Caffe绝对是较好的选择。Caffe是一款基于LeNet5的深度学习软件。不但提供参数优化,还提供可视化的深度学习函数,毫无疑问这使得Caffe具有极大的市场空间。但是 Caffe的学习周期比较长,如果你想要在短短的几个小时内搞定Caffe几乎是不可能的。
与此同时我的周边深度学习的需求较大,很多人无心细究深度学习的理论却需要使用深度学习算法。所以,一款具有应急性质(快速安装+快速学会)的深度学习工具箱是有必要的。在高校中,Matlab必然是使用度极其广泛的计算软件,会使用Matlab的人也较多。所以笔者开发的工具箱选定使用Matlab语言有其内在的道理。目前,基于Matlab的深度学习代码主要有斯坦福大学的吴恩达提供的UFLDL和Rasmus Berg Palm提供的Deep Learning Toolbox。毫无疑问。他们不计回报的免费提供代码是全世界深度学习者的福分。但是无论是UFLDL还是DLT都不利于DL的学习者快速建立深度学习的实例。所以本工具箱实际上是综合了两者的长处,并利用Matlab的面向对象编程技巧效仿Caffe封装了深度学习的部分属性。一方面使得学习者可以从宏观上了解并建立深度学习网络,另一方面与Caffe接轨。此外,使用者可以通过工具箱中提供的start()函数快速建立深度学习网络,这可以使用户可以更快的做他们想做的事而不必在意细节。DeepLab是一款全新的开源深度学习工具箱,欢迎有志之士参与进入我们的项目进行补充开发,使得DeepLab可以更广泛并支持更多的语言种类。