您好,欢迎访问三七文档
深度学习框架介绍几个相对出名的框架CaffeTheanoLasagneTensorFlowKerasMXNetTorch与PytorchCaffe优点第一个主流的工业级深度学习工具。在计算机视觉领域Caffe依然是最流行的工具包。很多常用论文的网络拥有caffe实现网络结构定义简单,网络则使用Protobuf定义缺点:1)它有很多扩展,但是由于一些遗留的架构问题,不够灵活且对递归网络和语言建模的支持很差。2)基于层的网络结构,其扩展性不好,对于新增加的层,需要自己实现(forward,backwardandgradientupdate)Caffe的全称应该是ConvolutionalArchitectureforFastFeatureEmbedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,它支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行。实现模块化。Theano优点相对灵活正确使用的话性能较好缺点陡峭的学习曲线大量的底层API编译复杂符号图的时候可能会很慢Theano不仅仅是一个可以独立使用的库,它还是我们下面介绍的很多框架的底层数值计算引擎;它来自蒙特利尔大学MILA实验室,由FrédéricBastien最早创建。Theano提供的API相对底层,因此如果你希望高效运行Theano,你必须对它的底层算法非常熟悉。如果你拥有丰富的机器学习理论知识与经验,并且你希望对于自己的模型有细粒度的控制或者自己动手创建新的模型,那么Theano是个不错的选择。总结而言,Theano最大的优势就是其灵活性。Lasagne优点还是比较灵活的比Theano提供了更高层的抽象接口文档与代码更为条理清晰缺点社区并不是很活跃鉴于Theano着重打造面向符号数学的工具库,Lasagne提供了基于Theano的相对高层的抽象,使它对于偏向工程的深度学习开发者更为友好。它最早由DeepMind的研究学者SanderDieleman开发与维护。不同于Theano中网络模型需要指定为符号变量的表达式,Lasagne允许用户以层的概念来定义网络,并且引入了所谓的“Conv2DLayer”与“DropoutLayer”。Lasagne以牺牲部分灵活性为代价提供了常用的组件来进行层构建、初始化、模型正则化、模型监控与模型训练。TensorFlow优点由Google支持社区很繁荣同时提供了底层与高层的网络训练接口,还要tflearn,tfslim上层接口比Theano提供了更高层的抽象接口比Theano能够更快地训练模型缺点对RNN的支持度仍然落后于Theano一开始的时候性能不是很好,但已经有所改进使用数据流图进行数值计算的开源软件库。TensorFlow集成了类似于Theano这样底层的符号计算功能,也包含了类似于Blocks或者Lasagne这样的高层API。尽管TensorFlow登上Python深度学习库的时间尚短,但是它已经成为了最受瞩目、社区最为庞大的工具。TensorFlow由Google大脑团队发布并且维护,它支持多GPU的机器学习模型,提供了高效的数据管道以及内建的用于审视、可视化以及序列化模型的功能。最近TensorFlow团队决定添加对于Keras的内建支持,使得TensorFlow具备更好的可用性。尽管社区都认同TensorFlow是有缺陷的,但是因为其社区的庞大与项目背后支持力量,学习TensorFlow会是个不错的选择;。Keras优点你可以自由选择使用Theano或者TensorFlow直观,高级的接口相对简单的学习曲线缺点与其他相比灵活性略差支持卷积神经网络,循环神经网络的Python深度学习库,能够运行在Theano或者TensorFlow之上。Keras算是这个列表中提供了最高层接口、用户使用最友好的深度学习库了。它由Google大脑团队的FrancisChollet创建与维护;它允许用户自由选择底层模型构建框架,可以是Theano或者TensorFlow。Keras的用户交互借鉴了Torch,如果你有基于Lua进行机器学习的经验,Keras会是很值得一试的工具。因为Keras完善的文档与简单易用的接口,Keras的社区非常繁荣与活跃。最近,TensorFlow团队宣布计划将内建支持Keras,因此不久的将来Keras会是TensorFlow项目的子集了吧。MXNet优点相当快的评测结果彻底的灵活性缺点社区最小比Theano更陡峭的学习曲线MXNet致力于提供兼顾性能与灵活性的深度学习框架。作为Amazon的钦定深度学习框架,MXNet也算是性能最好的深度学习框架之一了。它提供了类似于Theano与TensorFlow的数据流图,并且支持多GPU配置,提供了类似于Lasagne与Blocks的相对高阶的模型构建块,还能运行在多种硬件设备上(包括移动设备)。Python只是MXNet支持的多种语言之一,它还提供了基于R,Julia,C++,Scala,Matlab以及JavaScript的多种接口。如果你专注于效率,那么MXNet是个不二选择,不过你可能会要让自己习惯MXNet中很多的奇怪设定。Pytorch与torch优点由Facebook支持与维护支持动态图计算同时提供了高层接口与底层接口代码逻辑很PYTHON缺点与竞争者相比还不成熟除了官方文档之外的相关资料尚处于短缺支持强力GPU加速的PythonTensor与动态神经网络库。PyTorch问世不过数周,在我们的深度学习框架列表中尚属新生儿。虽然PyTorch主要基于LuaTorch,但是它是由Facebook人工智能研究团队(FAIR)支持的,并且它设计初衷就是用来处理动态计算图问题,这个特性也是其他的Theano,TensorFlow,以及其他扩展框架所没有的。虽然PyTorch尚未成熟,但是因为它这一特性我们相信它会在未来的Python深度学习生态系统中占据一席之地,并且我们认为它是个非常不错的选项。Keras优点你可以自由选择使用Theano或者TensorFlow直观,高级的接口相对简单的学习曲线缺点与其他相比灵活性略差支持卷积神经网络,循环神经网络的Python深度学习库,能够运行在Theano或者TensorFlow之上。Keras算是这个列表中提供了最高层接口、用户使用最友好的深度学习库了。它由Google大脑团队的FrancisChollet创建与维护;它允许用户自由选择底层模型构建框架,可以是Theano或者TensorFlow。Keras的用户交互借鉴了Torch,如果你有基于Lua进行机器学习的经验,Keras会是很值得一试的工具。因为Keras完善的文档与简单易用的接口,Keras的社区非常繁荣与活跃。最近,TensorFlow团队宣布计划将内建支持Keras,因此不久的将来Keras会是TensorFlow项目的子集了吧。比较表Dataaugmentation训练:随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到((256-224)^2)*2=2048。测试:测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。Crop大小不能太小,能够保证原始信息不能损失太多这样相等于增加了训练数据,效果可能会更好Howcanwefine-tuneapre-trainedImageNetmodel(e.g.VGG16)withimageshaving4(ormore)channels?迁移学习谢谢
本文标题:深度学习框架比较2
链接地址:https://www.777doc.com/doc-6068584 .html