没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|对比评测|编辑:龚雪|2017-03-13 11:31:02.000|阅读 395 次
概述:高阶机器学习中必不可少的Theano框架的深度学习!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
Theano 诞生于2008年,由蒙特利尔大学 Lisa Lab 团队开发并维护,是一个高性能的符号计算及深度学习库。因其出现时间早,可以算是这类库的始祖之一,也一度被认为是深度学习研究和应用的重要标准之一。Theano 的核心是一个数学表达式的编译器,专门为处理大规模神经网络训练的计算而设计。它可以将用户定义的各种计算编译为高效的底层代码,并链接各种可以加速的库,比如 BLAS、CUDA 等。Theano 允许用户定义、优化和评估包含多维数组的数学表达式,它支持将计算装载到 GPU (Theano 在 GPU 上性能不错,但是 CPU 上较差)。与 Scikit-learn 一样,Theano 也很好地整合了 NumPy,对 GPU 的透明让 Theano 可以较为方便地进行神经网络设计,而不必直接写 CUDA 代码。Theano 的主要优势如下:
因为 Theano 非常流行,有许多人为它编写了高质量的文档和教程,用户可以方便地查找 Theano 的各种 FAQ,比如如何保存模型、如何运行模型等。不过 Theano 更多地被当作一个研究工具,而不是当作产品来使用。虽然 Theano 支持 Linux、Mac 和 Windows,但是没有底层 C++的接口,因此模型的部署非常不方便,依赖于各种 Python 库,并且不支持各种移动设备,所以几乎没有在工业生产环境的应用。Theano 在调试时输出的错误信息非常难以看懂,因此 DEBUG 时非常痛苦。同时,Theano 在生产环境使用训练好的模型进行预测时性能比较差,因为预测通常使用服务器 CPU(生产环境服务器一般没有 GPU,而且 GPU 预测单条样本延迟高反而不如 CPU),但是 Theano 在 CPU 上的执行性能比较差。
Theano 在单 GPU 上执行效率不错,性能和其他框架类似。但是运算时需要将用户的 Python 代码转换成 CUDA 代码,再编译为二进制可执行文件,编译复杂模型的时间非常久。此外,Theano 在导入时也比较慢,而且一旦设定了选择某块 GPU,就无法切换到其他设备。目前,Theano 在 CUDA 和 cuDNN 上不支持多 GPU,只在 OpenCL 和 Theano 自己的 gpuarray 库上支持多 GPU 训练,速度暂时还比不上 CUDA 的版本,并且 Theano 目前还没有分布式的实现。不过,Theano 在训练简单网络(比如很浅的 MLP)时性能可能比 TensorFlow 好,因为全部代码都是运行时编译,不需要像 TensorFlow 那样每次 feed mini-batch 数据时都得通过低效的 Python 循环来实现。
Theano 是一个完全基于 Python (C++/CUDA 代码也是打包为 Python 字符串)的符号计算库。用户定义的各种运算,Theano 可以自动求导,省去了完全手工写神经网络反向传播算法的麻烦,也不需要像 Caffe 一样为 Layer 写 C++或 CUDA 代码。Theano 对卷积神经网络的支持很好,同时它的符号计算 API 支持循环控制(内部名scan),让 RNN 的实现非常简单并且高性能,其全面的功能也让 Theano 可以支持大部分 state-of-the-art 的网络。Theano 派生出了大量基于它的深度学习库,包括一系列的上层封装,其中有大名鼎鼎的 Keras,Keras 对神经网络抽象得非常合适,以至于可以随意切换执行计算的后端(目前同时支持 Theano 和 TensorFlow)。Keras 比较适合在探索阶段快速地尝试各种网络结构,组件都是可插拔的模块,只需要将一个个组件(比如卷积层、激活函数等)连接起来,但是设计新模块或者新的 Layer 就不太方便了。除 Keras 外,还有学术界非常喜爱的 Lasagne,同样也是 Theano 的上层封装,它对神经内网络的每一层的定义都非常严谨。另外,还有 scikit-neuralnetwork、nolearn 这两个基于 Lasagne 的上层封装,它们将神经网络抽象为兼容 Scikit-learn 接口的 classifier 和 regressor,这样就可以方便地使用 Scikit-learn 中经典的 fit、transform、score 等操作。除此之外,Theano 的上层封装库还有 blocks、deepy、pylearn2 和 Scikit-theano,可谓是一个庞大的家族。如果没有 Theano,可能根本不会出现这么多好用的 Python 深度学习库。同样,如果没有 Python 科学计算的基石 NumPy,就不会有 SciPy、Scikit-learn 和 Scikit-image,可以说 Theano 就是深度学习界的 NumPy,是其他各类 Python 深度学习库的基石。虽然 Theano 非常重要,但是直接使用 Theano 设计大型的神经网络还是太烦琐了,用 Theano 实现 Google Inception 就像用 NumPy 实现一个支持向量机(SVM)。且不说很多用户做不到用 Theano 实现一个 Inception 网络,即使能做到但是否有必要花这个时间呢?毕竟不是所有人都是基础科学工作者,大部分使用场景还是在工业应用中。所以简单易用是一个很重要的特性,这也就是其他上层封装库的价值所在:不需要总是从最基础的 tensor 粒度开始设计网络,而是从更上层的 Layer 粒度设计网络。
更多行业资讯,更新鲜的技术动态,尽在慧都学院。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
AnyDesk 精心设计了阶梯式的功能版本:孤勇版(适合单兵作战的专业用户)、先锋版(小团队开拓者)、群雄版(多团队/复杂需求领航者)以及企业版(集团化定制管理)。
在 CAD 软件开发与图形处理领域,选择一款适配的开发工具对项目的成败起着关键作用。VectorDraw Developer Framework 和 CAD .NET 作为行业内备受关注的两款产品,各自凭借独特的技术优势和功能特性,在不同的应用场景中发挥着重要作用。
一表详解PreEmptive Dotfuscator免费版与商业版的区别
在软件项目开发里,选择合适的 ActiveX 控件至关重要。Iocomp ActiveX/VCL 与 ComponentOne Studio for ActiveX 都是热门之选,下面从多方面对比,助你明确二者差异。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号