A. python深度学习框架学哪个
Python 深度学习生态系统在这几年中的演变实属惊艳。pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。我们已经在 indico 的产品或者开发中使用了以下列表中的大部分的技术,但是对于剩下一些我们没有使用的,我将会借鉴他人的经验来帮助给出 Python 深度学习生态系统的清晰的、详尽的理解。
确切地说,我们将会关注:
Theano
Lasagne
Blocks
TensorFlow
Keras
MXNet
PyTorch
下面是对这 7 大 Python 深度学习框架的描述以及优缺点的介绍。
Theano
描述:Theano 是一个 Python 库,允许你定义、优化并且有效地评估涉及到多维数组的数学表达式。它与 GPUs 一起工作并且在符号微分方面表现优秀。
概述:Theano 是数值计算的主力,它支持了许多我们列表当中的其他的深度学习框架。Theano 由 Frédéric Bastien 创建,这是蒙特利尔大学机器学习研究所(MILA)背后的一个非常优秀的研究团队。它的 API 水平较低,并且为了写出效率高的 Theano,你需要对隐藏在其他框架幕后的算法相当的熟悉。如果你有着丰富的学术机器学习知识,正在寻找你的模型的精细的控制方法,或者想要实现一个新奇的或者不同寻常的模型,Theano 是你的首选库。总而言之,为了灵活性,Theano 牺牲了易用性。
优点:
灵活
正确使用时的高性能
缺点:
较高的学习难度
低水平的 API
编译复杂的符号图可能很慢
Lasagne
描述:在 Theano 上建立和训练神经网络的轻量级库
概述:因为 Theano 致力于成为符号数学中最先且最好的库,Lasagne 提供了在 Theano 顶部的抽象,这使得它更适合于深度学习。它主要由当前 DeepMind 研究科学家 Sander Dieleman 编写并维护。Lasagne 并非是根据符号变量之间的函数关系来指定网络模型,而是允许用户在层级思考,为用户提供了例如“Conv2DLayer”和“DropoutLayer”的构建块。Lasagne 在牺牲了很少的灵活性的同时,提供了丰富的公共组件来帮助图层定义、图层初始化、模型正则化、模型监控和模型训练。
优点:
仍旧非常灵活
比 Theano 更高级的抽象
文档和代码中包含了各种 Pasta Puns
缺点:
社区小
Blocks
描述:用于构建和训练神经网络的 Theano 框架
概述:与 Lasagne 类似,Blocks 是在 Theano 顶部添加一个抽象层使深度学习模型比编写原始的 Theano 更清晰、更简单、定义更加标准化。它是由蒙特利尔大学机器学习研究所(MILA)编写,其中一些人为搭建 Theano 和第一个神经网络定义的高级接口(已经淘汰的 PyLearn2)贡献了自己的一份力量。比起 Lasagne,Blocks 灵活一点,代价是入门台阶较高,想要高效的使用它有不小的难度。除此之外,Blocks 对递归神经网络架构(recurrent neural network architectures)有很好的支持,所以如果你有兴趣探索这种类型的模型,它值得一看。除了 TensorFlow,对于许多我们已经部署在 indico 产品中的 API,Blocks 是其首选库。
优点:
仍旧非常灵活
比 Theano 更高级的抽象
易于测试
缺点:
较高的学习难度
更小的社区
TensorFlow
描述:用于数值计算的使用数据流图的开源软件库
概述:TensorFlow 是较低级别的符号库(比如 Theano)和较高级别的网络规范库(比如 Blocks 和 Lasagne)的混合。即使它是 Python 深度学习库集合的最新成员,在 Google Brain 团队支持下,它可能已经是最大的活跃社区了。它支持在多 GPUs 上运行深度学习模型,为高效的数据流水线提供使用程序,并具有用于模型的检查,可视化和序列化的内置模块。最近,TensorFlow 团队决定支持 Keras(我们列表中下一个深度学习库)。虽然 TensorFlow 有着自己的缺点,但是社区似乎同意这一决定,社区的庞大规模和项目背后巨大的动力意味着学习 TensorFlow 是一次安全的赌注。因此,TensorFlow 是我们今天在 indico 选择的深度学习库。
优点:
由软件巨头 Google 支持
非常大的社区
低级和高级接口网络训练
比基于 Theano 配置更快的模型编译
完全地多 GPU 支持
缺点:
虽然 Tensorflow 正在追赶,但是最初在许多基准上比基于 Theano 的慢。
RNN 支持仍不如 Theano
Keras
描述:Python 的深度学习库。支持 Convnets、递归神经网络等。在 Theano 或者 TensorFlow 上运行。
概述:Keras 也许是水平最高,对用户最友好的库了。由 Francis Chollet(Google Brain 团队中的另一个成员)编写和维护。它允许用户选择其所构建的模型是在 Theano 上或是在 TensorFlow 上的符号图上执行。Keras 的用户界面受启发于 Torch,所以如果你以前有过使用 Lua 语言的机器学习经验,Keras 绝对值得一看。由于部分非常优秀的文档和其相对易用性,Keras 的社区非常大并且非常活跃。最近,TensorFlow 团队宣布计划与 Keras 一起支持内置,所以很快 Keras 将是 TensorFlow 项目的一个分组。
优点:
可供选择的 Theano 或者 TensorFlow 后端
直观、高级别的端口
更易学习
缺点:
不太灵活,比其他选择更规范
MXNet
描述:MXNet 是一个旨在提高效率和灵活性的深度学习框架。
概述:MXNet 是亚马逊(Amazon)选择的深度学习库,并且也许是最优秀的库。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。对 Python 的支持只是其冰山一角—MXNet 同样提供了对 R、Julia、C++、Scala、Matlab,和 Javascript 的接口。如果你正在寻找最佳的性能,选择 MXNet 吧,但是你必须愿意处理与之相对的一些 MXNet 的怪癖。
优点:
速度的标杆
非常灵活
缺点:
最小的社区
比 Theano 更困难的学习难度
PyTorch
描述:Python 中的张量(Tensors)和动态神经网络,有着强大的 GPU 加速。
概述:刚刚放出一段时间,PyTorch 就已经是我们 Python 深度学习框架列表中的一个新的成员了。它是从 Lua 的 Torch 库到 Python 的松散端口,由于它由 Facebook 的 人工智能研究团队(Artificial Intelligence Research team (FAIR))支持且因为它用于处理动态计算图(Theano,TensorFlow 或者其他衍生品没有的特性,编译者注:现在 TensorFlow 好像支持动态计算图),它变得非常的有名。PyTorch 在 Python 深度学习生态系统将扮演怎样的角色还不得而知,但所有的迹象都表明,PyTorch 是我们列表中其他框架的一个非常棒的选择。
优点:
来自 Facebook 组织的支持
完全地对动态图的支持
高级和低级 API 的混合
缺点:
比其他选择,PyTorch 还不太成熟
B. 医学图像三维重建,体绘制中的光线投射算法(raycast)的MATLAB或者python实现代码
介绍了运用Matlab软件进行CT断层图像的三维重建的原理及实现方法。运用计算机图形学和图像处理技术将计算机断层扫描(CT)等成像设备得到的人体断层二维图像序列,在计算机中重建成三维图像数据,并在屏幕上形象逼真地显示人体器官的立体视图。可以对重构出的器官图像进行诸如旋转、缩放等操作,重建方法简单,显示效果良好
C. 大数据专业成热门,该如何转行做大数据分析师
那我就转载一篇别人转行做数据分析的经验贴给题主吧:
亲爱的各位加米谷学院的老师和同学们好,首先非常感谢大家在17年9月到18年3月份5个月时间的陪伴,以及张老师和曾老师在我学习期间的耐心辅导。在大数据培训的道路上,正是因为有你们的辛勤付出与陪伴,才让我在大数据职业道路上有了今天我很满意的薪资待遇。再次谢谢你们!
在数据分析挖掘培训的过程中给我印象最深就是张老师,张老师的课讲的很清楚,尤其是PPT图解理论,让我这样的0基础学员能够理解到位,不愧是国家大数据标准组的成员。虽然只有短短五个月的学习时间,但是对于我个人来说收获非常大,不止让我从一个小白成功入行,并成功面试到张老师推荐的公司,拿到了我非常满意的薪水。
张老师希望我可以给后面的学弟学妹们分享一点学习经验,学习这件事大家都不陌生,大家都是经历过十几年的学习生涯。尤其是转行0基础学习大数据的同学,对大数据行业了解的也一定很清楚了,才会决定来进行大数据培训。下面我只说5个方面,后面的学弟学妹可以从中作参考,也希望对你们有帮助。
1、兴趣是最好的老师,既然决定转好从0基础学习大数据,那你一定要从心里爱上它,只有你真正的上心了,才能有动力去学好它。
2、多看,课前预习是少不了的,课前老师都会把当天讲的课件提前发给你,一定要抽出时间先认真看一下,否则,你会发现到时候老师讲的内容你接受起来非常吃力。
3、多问,如果你是一个0基础学习大数据,之前没有任何编程基础,遇到问题一定要多问,第一时间问老师,不要碍着面子死撑,一方面可以锻炼你的沟通能力,是否能用尽量通俗的话语让老师明白你遇到的问题所在(对你以后面试很有帮助),另一方面现在的学习成果也影响着以后的薪资待遇。
4、多练,加米谷学院每个阶段的实训项目都是很有针对性的,全部是来自真实企业中真实的项目,现在多练习对于以后的面试以及工作经验都会非常的有帮助。
5、勤奋,这个说起来很简单,人都是有惰性的,就像我们上学时候一样,同样一个班级,老师教的东西也都一样,为什么有的学习好,有的学习不好?数据分析培训也一样,毕业之后为什么有的薪资可以拿到18K,有的却只有几千?这跟自己的勤奋程度是成正比的,每个人请找到自己的勤奋点,加油!