python使用 caffe Python调Caffe?醒醒吧!TensorFlow都开源到1.0了,你还在用老古董 在经历开源这一行为之后谷歌马上就收获了数量众多的关注, 它具备支持范围广阔的功能, 像是图像、手写、语音识别、预测, 还有自然语言处理这些方面, 它是在2015年11月9日依据2.0许可实现开源的。2017年2月15日对外发布了1.0版本, 该版本乃是八个先前版本的积累成果, 它将诸多不完整的核心功能以及性能方面的问题予以解决, 下面是成功的性能方面的介绍。提供以下工具编程接口涵盖了C , 随着版本1.0的发布, 会对Java、GO、R以及API的alpha版本接口予以支持, 另外, 在特定环境中和Cloud里能得到支持。跟着, r0.12版予以发布, 此开源软件库当下已然支持、10以及2016。这个开源软件库能够于ARM架构上展开编译以及优化, 鉴于其运用C Eigen库。这表明你能够在各类服务器或者移动设备上布置经过培训的模型, 而用不着去实现单独的模型解码器或者加载解释器。精细的网格层是被支持的, 用户能够构建新的复杂层类型, 且不是通过低级语言来实现的。子图执行可在图的任意边缘引入并检索自由数据的结果, 这对调试复杂计算图极为有益。引入之分布式乃版本0.8, 其被允许进行模型并行, 此所意味者, 乃不同部分之模型于不同设备之上能够并行开展训练也。优达学城上, 该框架正当在提出有关课程, 于斯坦福大学、加州大学伯克利分校、多伦多大学。CaffeCaffe是贾扬清的心血结晶, 贾扬清在领导AI平台工程, Caffe可能是首个主流的行业级深度学习工具包, 此项工具包开创于2013年底, 因其有着优良的卷积模型, 所以它是计算机视觉界颇受欢迎的工具包之一, 并且Caffe在2014年于挑战赛中获取了胜利, Caffe是在BSD 2-开源许可之后发布的。速度使Caffe变成研究实验以及商业部署的绝佳选择, Caffe能够借助单个K40 GPU每日处理超6000万张图片, 在推理方面, 其速度是1毫秒每张图, 在学习进程中, 速度是4毫秒每张图, 且最新版本的库速度更快。Caffe是以C为基础的, 它能够在各类设备上进行编译, 它具备跨平台特性, 涵盖了一个端口, Caffe支持于C 以及某一编程接口, Caffe存在着一个庞大的用户群体, 他们为自身的深层网络存储库也就是所谓的“Model Zoo”贡献自身力量, 某两种呈现出流行态势且在社区可获取的用户网络是某和某。流行的用于视觉识别的深度学习网络是Caffe, 只是其不支持像CNTK那样的细粒度网络层, 构造复合层类型得用低级语言来完成, 因其架构传统, 所以它对常规网络以及语言建模的支持, 整体上是很差的。Caffe 2其中贾扬清以及他所带领的团队, 正在针对Caffe 2展开研究工作。时值2017年4月18日, 依据BSD许可协议, Caffe 2被进行了开源处理。那么Caffe 2跟Caffe究竟存在怎样的不同之处呢? Caffe 2在侧重点方面, 更倾向于模块化以及具备卓越表现的移动和大规模部署。与之类似, Caffe 2会运用C Eigen库以对ARM架构予以支持。Caffe模型能够十分轻易地被转换为带有实用程序脚本的Caffe 2模型, Caffe的设计抉择致使其成为应对视觉类型问题的理想挑选之所, Caffe 2持续大力支持视觉类型问题, 不过增添了自然语言处理、手写识别, 以及时间序列预测的循环神经网络RNN和长短期记忆网络LSTM。期望Caffe 2, 在不久后边的时间段里, 能够实现对Caffe的超越, 原因在于它是深度学习社区里大众热烈追捧的对象。CNTK那被称作CNTK的事物属于一种深度神经网络, 它最开始是为了让语音识别得以提升而打造出来的, CNTK能对RNN以及CNN类型的神经模型予以支持, 这使得它成为去应对图像、手写还有语音识别问题的极为合适的候选对象, CNTK支持运用或者C编程接口的64位Linux以及操作系统, 并且是依据MIT许可来进行发布的。CNTK跟和的构成相像, 它的网络被规定为向量运算的符号图, 像是矩阵的加法或者乘法, 又或者是卷积。另外, 如同和那般, CNTK准许构建网络层的细粒度程度。构建块也就是操作的细粒度程度让用户能够创造新的复合层类型, 而不是借助低级语言来实现, 例如Caffe。如同Caffe那般, CNTK同样是基于C的, 有着跨越平台的CPU/GPU支持, CNTK在Azure GPU Lab提供了最为高效的分布式计算性能, 当前, CNTK对于ARM架构的欠缺支持, 制约了其于移动设备上的功能。MXNetMXNet, 其发音为“mix-net”, 它起源于卡内基梅隆大学, 以及华盛顿大学。MXNet是一个功能完备, 具备可编程特性, 且可扩展的深度学习框架, 它能支持最先进的深度学习模式。MXNet提供了混合编程模型, 也就是命令式和声明式的那种, 并且有着能提供大量编程语言代码的能力, 这些编程语言包括C、R、Scala、Julia等。在2017年1月30日, MXNet进入基金会, 成为其孵化器项目。MXNet支持深度学习架构, 像卷积神经网络CNN, 还有循环神经网络RNN, 这其中包含长短期记忆网络LTSM。该框架为成像提供了出色功能, 为手写提供了出色功能, 为语音识别提供了出色功能, 为预测提供了出色功能, 为自然语言处理提供了出色功能。有人声称MXNet是世界上最好的图像分类器。MXNet具备强大技术, 有着扩展能力, 像GPU并行性以及内存镜像, 还有编程器开发速度与可移植性。另外, MXNet 和一种通用的、分布式的应用程序管理框架YARN集成, 致使MXNet成为竞争对手。MXNet存在区别, 它是支持生成对抗网络, 也就是GAN模型的, 唯一的深层网络框架。另一个区别在于, 亚马逊的首席技术官, 做出当众支持MXNet的行为, 其称“今日, 我们宣告MXNet会成为我们的深度学习框架。”Vogel陆续说道: “我们对其在现有以及即将推出的新服务里加以运用有着相应计划“。苹果公司于2016年收购 / Dato / Turi后, 也存在使用它的相关传闻。Torch你提供的内容存在较多表述混乱和语病问题, 我尽力理解后进行改写: Torch是由Ronan和现在所在的以及Deep Mind共同开发的, Torch的主要贡献者是某某与某某, Torch获得了BSD 3开源许可, 然而随着最新宣布其改变方向, 使得Caffe 2成为主要的深度学习框架以用于在移动设备上部署深度学习。Torch是用Lua编程语言来实现的, Lua并非主流语言, 只有当你公司的员工熟练掌握它之后, 才不会对会影响开发人员的整体的整体效率产生影响。分布式应用程序管理框架在Torch中缺乏, 或者在MXNet中支持YARN缺乏。大量的API编程语言缺乏, 这也对开发人员造成限制。DL4JDL4J是分布式神经网络库, 是开放源码, 有2.0授权, 由Java和Scala编写。DL4J源自Adam的创意, 是商业级深度学习网络, 且是唯一与Spark集成的, 它能协调多个主机线程。DL4J是独特的深度学习框架, 因其靠Map来训练网络, 还依靠其他库执行大型矩阵操作。这是DL4J框架, 其内置GPU支持, 此为训练过程里重要功能, 且支持YARN、分布式应用程序管理框架, 它支持丰富深层网络架构, 像RBM、DBN、卷积神经网络CNN、循环神经网络RNN、RNTN, 以及长短期记忆网络LTSM, DL4J还包含名为矢量库的支持。DL4J于Java里开源, 从本质上来说是要比快的那种表现。它跟Caffe有着一样的速度, 被运用于那种使用多个GPU的并非平凡普通意义上的图像识别任务。这个框架针对图像识别、欺诈检测以及自然语言处理给出了相当出色亮眼的功能。由蒙特利尔大学学习算法学院MILA积极地进行维护, 以其创始人为领导, 该实验室有着大约30 - 40名教师以及学生, 是深度学习研究方面的重要贡献者, 支持迅速地开发高效的机器学习算法 , 并凭借BSD许可予以发布。架构十分简约, 全部源代码库以及接口皆是如此, 当中C/CUDA代码被整理成字符串形式。对于一名开发者而言, 这极为不易掌控、调试以及重构。使用符号图来对于编程网络开创了一种趋势, 该种趋势下的符号API对循环控制予以支持, 而这种循环控制也就是所谓的扫描, 扫描使得实现RNN此事变得更加容易, 同时也更加高效。存在着缺乏分布式应用程序管理框架的情况, 且仅仅支持一种编程开发语言, 它是学术研究的一个相当不错的工具, 在一个CPU上能比对更有效地运行, 然而, 在针对大型分布式应用程序展开开发以及提供支持的时候, 有可能会遭遇挑战。开源或专有随着学习的不断深入且逐渐成熟起来, 你就将会发觉, Caffe 2与MXNet之间存在着竞争, 这是在预料范围之中的。随着软件供应商去开发拥有最先进水平的智能产品, 进而在由你所提供的数据里获取最大的收益。风险在于你会去购买一种产品, 它究竟是以专有作为基础的, 还是以开源当作基础的? 要是有了开放源码 , 你就会在选择哪一个深入学习框架最为适宜这件事上感到极为困难。在专有的方法里面, 你的退出策略又是什么? 我们不应该从短期的角度去看待, 因为人工智能所带来的回报是取决于其学习能力的成熟程度的。