优点:在真正开始计算的时候已经拿到了整个计算图,所以我们可以做一系列优化来提升性能。实现辅助函数也容易,例如对任何计算图都提供forward和backward函数,对计算图进行可视化,将图保存到硬盘和从硬盘读取。 缺点:很多主语言的特性都用不上。某些在主语言中实现简单,但在这里却经常麻烦,例如if-else语句 。debug也不容易,例如监视一个复杂的计算图中的某个节点的中间结果并不简单。
几种主要深度学习框架的比较 目前现有的系统大部分都采用上两种编程模式的一种。与它们不同的是,MXNet 尝试将两种模式无缝的结合起来。在命令式编程上 MXNet 提供张量运算,而声明式编程中 MXNet 支持符号表达式。用户可以自由的混合它们来快速实现自己的想法。例如我们可以用声明式编程来描述神经网络,并利用系统提供的自动求导来训练模型。另一方便,atv,模型的迭代训练和更新模型法则中可能涉及大量的控制逻辑,atv,因此我们可以用命令式编程来实现。同时我们用它来进行方便地调式和与主语言交互数据。 五个主要 Python 深度学习库的比较 Theano 是一个专用于高效计算的低级库。如果你需要细粒度的定制和灵活性,可以直接使用这个库。 TensorFlow是另一个低级库,比 Theano 还要不成熟。但它是 Google 支持的库,并提供了开箱即用的分布式计算。 Lasagne是 Theano 中的一个轻量级库。如果你想要 Theano 的灵活性,但不想总是从头开始编写神经网络的层,可以选择 Lasagne。 Keras 是基于 Theano 或 TensorFlow 高层神经网络库。它具有极简化、模块化的优点,而且在实验中非常快速。这是深度学习的最受欢迎的库,也是初学者的最佳入门库。 MXNet是另一个类似 Keras 的高级库。它提供了多种语言的绑定,并且支持分布式计算。 导师(Mentor):Theano 我们授予 Theano “导师”称号,因为它让引导我们认识并喜欢上其他的深度学习库。 例如,Lasagne 和 Keras 都是基于 Theano 的。就其核心来说,Theano 是为使用多维数组进行数学计算的库,它的速度非常快,并且使用 GPU 进行优化(比 CPU 快 140倍)。换句话说,它是神经网络的“构建块”。 根据我们的经验,很少有人会直接写 Theano 代码。通常需要使用更高级的包装器(wrapper),除非你需要的是低级的定制。 例如,下面是一个用 Theano 写的逻辑激活函数 后起之秀:TensorFlow TensorFlow 是“后起之秀”,而且它很受欢迎。 TensorFlow 是 Google 自己的 AI 团队开发的,而且最近开源了。TensorFlow 允许使用数据流图进行高效的数值计算。它从 Theano 的经验中学习了很多,因此被称作是全新的 Theano 2.0 版本。Google 的强力支持也使得它格外有前景。 即便如此,Theano 在很多方面仍然比 TensorFlow 快,而且支持更多样的操作。 但是,TensorFlow 最大的优势是它支持开箱即用的分布式计算,这使得在多 GPU 上训练深度神经网络更简单。 轻量:Lasagne Lasagne 是 Theano 的一个轻量级包装器。Lasagne 允许使用 Theano 的优化计算来构建并训练神经网络。而轻量级是指,在 Lasagne 中,你仍然需要获取相当的低级,并且声明网络的每个层。在 Theano 之外,它只提供模块化的构建块。 结果是你的代码会变得十分冗长,但你可以用 NN 结构而非多维数组进行编程。 Lasagne 可以视为 Theano 的灵活性 和 Keras 的简单性之间的折衷选择。 半机械人(Cyborg):Keras 在所有 Python 深度学习库中,Keras 是最受欢迎的。原因有三: 首先,Keras 是一个允许在后端使用 Theano 或 TensorFlow 的包装器。这意味着开发者可以根据自己的应用程序轻松在两个库之间切换,。 第二,它有很漂亮的指导原则:模块性、极简主义、易扩展性,以及与 Python 协作。这使得 Keras 的实际使用非常简单愉快。 最后,Keras 拥有常见的网络结构的开箱即用的实现。它能快速、轻易地运行卷积神经网络。 下面是一个超快的序列模型的例子: 看起来很容易,是吧?如果想快速实现,Keras 是十分理想的库。但它最大的缺点是不支持并行训练的多 GPU 环境。 多语通(Polyglot):MXNet MXNet 同 Keras 一样是高级库,但它的优势在另外的方面。 一方面,使用 MXNet 构建网络比用 Keras 需要花更多功夫。由于教程少,学习的难度更大。 但是,MXNet 支持超过 7 种不同的语言的优势弥补了这一点,这些语言包括 C++、Python、R、Javascrip,甚至 Matlab。 MXNet 是真正的多语通,对使用不同的语言共享模型的团队工作来说,它是不二之选。 MXNet 的另一个明显的优势是支持分布式计算。这意味着如果你需要在多个 CPU 或 GPU 上训练模型以提高速度,MXNet 是很好的选择。 编译来源: https://elitedatascience.com/python-deep-learning-libraries 新智元招聘 职位 运营总监 职位年薪:36- 50万(工资+奖金) 工作地点:北京-海淀区 所属部门:运营部 汇报对象:COO 下属人数:2人 年龄要求:25 岁 至 35 岁 性别要求:不限 工作年限:3 年以上 语 言:英语6级(海外留学背景优先) 职位描述 负责大型会展赞助商及参展商拓展、挖掘潜在客户等工作,人工智能及机器人产业方向 擅长开拓市场,并与潜在客户建立良好的人际关系 深度了解人工智能及机器人产业及相关市场状况,随时掌握市场动态 主动协调部门之间项目合作,组织好跨部门间的合作,具备良好的影响力 带领团队完成营业额目标,并监控管理项目状况 负责公司平台运营方面的战略计划、合作计划的制定与实施 岗位要求 大学本科以上学历,硕士优先,要求有较高英语沟通能力 3年以上商务拓展经验,有团队管理经验,熟悉商务部门整体管理工作 对传统全案公关、传统整合传播整体方案、策略性整体方案有深邃见解 具有敏锐的市场洞察力和精确的客户分析能力、较强的团队统筹管理能力 (责任编辑:本港台直播) |