AI 科技评论按:TensorFlow 是目前最流行的深度学习库,它是 Google 开源的一款机器学习开发框架。Tensor 的意思是张量,代表 N 维数组;Flow 的意思是流,代表基于数据流图的计算。把 N 维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。
最近,twitter 上有一位 Goolge AI 工程师、Google AI 的积极宣传者 Paige Bailey (@DynamicWebPaige)总结了 TensorFlow 的 30 个主要功能,AI 科技评论整理如下。
在过去几年,有关 TensorFlow 的知识系统占据了我的大脑。与其它一些更新的框架相比,TensorFlow 的功能并不是很多。
我对这个产品投入全心的思考并写下了我的想法,下面是一条接一条不断扩展的清单。对此,你准备好了吗?
1)TensorFlow 扩展(TFX)
大家都知道我特别喜欢用 TFX 以及它的全套工具来把机器学习模型部署到生产环境中。如果你关心如何使模型保持最新并监控它们,那么你可以了解一下这个产品、看看它的论文。
地址是:tensorflow.org/tfx/?hl=zh-cn
2)TensorFlow hub
如果你想在小型数据集上训练你的模型,或者提高泛化能力,你会需要使用迁移学习。TFHub 模块使它变得容易,并且可以在 https://tfhub.dev/ 这个开源软件商店中使用。
TF Hub 的地址是:tensorflow.org/hub/
3)TFX 数据验证
如何自动确保用于重新训练模型的数据与最初用于训练模型的数据具有相同的格式、源、命名约定等。
对于线上训练来说,这是一个量很大的工作!
https://www.tensorflow.org/tfx/data_validation/?hl=zh-cn
4)TFX -TensorFlow 变换
同样地,你可能希望用于重新训练的数据也能被自动进行预处理:对特定特性进行归一化、将字符串转换为数值等。Transform 不仅可以对单个样本进行这些操作,还能批处理数据。
网址是:https://www.tensorflow.org/tfx/transform/?hl=zh-cn
5)TFX 模型分析
我最喜欢用 TensorFlow 模型分析功能去检查模型的输入数据或者模型推理过程中可能发生在某一小部分数据上的问题。我可以用它来仔细检查数据,以确保所有类别的数据都没有受到负面影响
网址是:https://www.tensorflow.org/tfx/model_analysis/?hl=zh-cn
6)TFX-服务
服务使得部署新算法+实验变得容易,但是仍然能保持相同的服务器架构+API。它不仅可以直接支持 TensorFlow 上的模型,也可以支持其它模型。
网址是:https://www.tensorflow.org/serving/?hl=zh-cn
7)TensorBoard
TensorBoard 是 TensorFlow 框架上一个非常酷炫的可视化工具,它也是 TensorFlow 直接自带的。它可以可视化展现模型运行过程中的日志,而且对于标量、直方图、分布、图、图像、音频等都有各自的展示面板。
网址是:https://t.co/CEVbcJTHLP?amp=1
8)TensorFlow Lite (TFLite)
用 TFLite 可以在手机和嵌入式设备上部署模型。如果你看到安卓手机上有检测植物叶子是否有疾病的 APP,或者小型的、具备 AI 技能的机器人,那么它们很有可能使用了 TFLite。
网址是:https://t.co/suCsBIeQz4?amp=1
9)TensorFlowJS
这是一个 JavaScript 库,用于在浏览器和 Node.js 上训练和部署 ML 模型。如果你已经习惯了使用 TensorFlow Playground 和 GAN Playground,TFJS 就是它们背后的支撑技术。TensorFlowJS 的团队也棒极了!
网址:https://js.tensorflow.org/
10)TensorFlow 上的 Swift
Swift 可以在运行代码前,捕获类型错误和形状不匹配的错误,并内置了自动微分功能。它带来了 eager execution 功能,而且让 TF 的可用性提高了非常多。我还需要多用用这个
网址:https://www.tensorflow.org/swift/
11)Keras
Keras 如今直接集成在 TF 中,也就是 tf.keras。这意味着,如果不想使用低阶的模型,那仍然可以用高阶 API 的用户友好性来实现图形+模型的构建。2.0 版本将会有更多的功能!
网址:https://www.tensorflow.org/guide/keras
12)Tensor2Tensor
Tensor2Tensor 是一个深度学习模型和数据集的开源软件库,它可以让深度学习变得更容易上手,促进机器学习的研究。它同时也提供了何时以及为什么要部署这些模型的高级指南。
网址:https://github.com/tensorflow/tensor2tensor
13)XLA(线性代数计算加速)
XLA 是线性代数领域特定的编译器,它优化了 TensorFlow 的计算方式。结果是在计算速度、内存使用和移动平台的可移植性上都有改进。
不过你先要有一个硬件加速器啊!
网址:https://www.tensorflow.org/xla/
14)边缘 TPU
为低功耗 IO 设备提供高性能机器学习推理的小型专用集成电路。例如:边缘 TPU 可以执行最先进的移动视觉模型,如以 100+fps 的速度执行 MobileNet V2 模型,同时还非常地省电。
网址:https://cloud.google.com/edge-tpu/
15)Magenta
作为一个音乐家,Magenta 让我高兴得不得了。
可以将 8 键输入映射到一架 88 键钢琴上、自动创建旋律伴奏、使用机器学习来显示音乐的视觉效果、转录曲调、产生新的声音等等。
网址:https://magenta.tensorflow.org/
16)种子库
这个功能也很少看到有人讨论
种子库是一个不断扩展的交互式机器学习示例集合,您可以使用、修改、实验和补充这些示例来满足您的需求+用例研究。在种子库的机器学习项目里面,甚至有关注公平和偏见的实例!
种子库的地址是:https://research.google.com/seedbank/
17)GoogleColab 分析工具
这不是 TensorFlow 特有的工具,但是是一个非常好的工具,我不得不提到它!它是一个交互式的 Python 笔记本,能免费使用,可以在 CPU/GPU/TPU 或本地/远程后端之间切换!
18)Probability 库
深度学习是很好的,但是,作为一个数据科学家,你可能想告诉你的模型一些特定领域的知识:蒙特卡洛,变分推理,贝叶斯技术,矢量量化自动编码器等等。
网址是:https://www.tensorflow.org/probability/
19)模型园
这是一个收藏了大量 GoogleAI 和 TensorFlow 社区开源模型的大集合,包括了样本和代码片段。从树到神经元程序的合成都有。
网址是:https://github.com/tensorflow/models
20)Dopamine
这是一个用于原型化强化学习算法的、易于访问的框架。专注于:实验的简单性、灵活性、可靠性和重现性。
备注:谷歌官方还没有正式发布这个产品!
网址:https://github.com/google/dopamine
Dopamine 团队甚至开发了一系列的 GoogleColab 笔记本来展示如何使用这个产品!这种用户友好的做法也让框架更加地多变。
网址:https://github.com/google/dopamine/blob/master/dopamine/colab/README.md
21)Nucleus 模块
Nype 是一个 Python 和 C++代码库,旨在使对于常见的基因组学的数据如 SAM 或 VCF 更容易被读取、写入和分析。它能与 TensorFlow 完美的集合在一起。
网址:https://github.com/google/nucleus
关于 2018 TensorFlow 开发者峰会,请查看 You Tube 视频:
https://www.youtube.com/watch?v=vdG7uKQ2eKk
22)TensorFlow 研究云(TFRC)
这是 1000 个谷歌云 TPU 的集群,为机器学习研究社区提供了总计 180 兆帕的计算能力——而且绝对免费,为机器学习的下一次突破做出自己的贡献。
网址:https://www.tensorflow.org/tfrc/
23)TensorFlow 社区
这不是一个特定的产品,但是它对 TensorFlow 的生态系统来说至关重要。
谷歌 AI 对社区的新关注点是:以 Edd 为首的功能邮件列表、社交媒体、特殊兴趣小组以及 TensorFlow 直接输入新的/变化的功能。
24)TensorFlow 文档
你知道我们所有的文件都放在 @ GITHUB 上吗?欢迎社会各界的贡献和建议!马上去问问 @billylamberta 学习如何开始吧!
风格指南:https://www.tensorflow.org/community/documentation
反馈问题:
https://github.com/tensorflow/tensorflow/issues?q=is%3Aopen+is%3Aissue+label%3Atype%3Adocs
25)Rstats
fly_upside_down、rstudio 和 fchollet 为开发者创建了一个 R 接口,它使用高级 #Keras+Estimator API,并在需要在较低级别调整网络时提供更多的控制。
甚至有一本书是关于这个的:https://tensorflow.rstudio.com/
26)AdaNet
用于自适应学习深层神经网络的结构/优化权值的算法。如果您想了解更多关于自适应机器学习内核的知识,AdaNet 的教程是一个很好的起点!
相关地址:https://github.com/tensorflow/adanet
关于 AdaNet 的论文:https://arxiv.org/abs/1607.01097
27)Lucid
可解释性,也就是深层神经网络是怎么做出决策的,这对于道德机器学习和将深度学习用于会有显著影响的场景中是至关重要的。
https://github.com/tensorflow/lucid 这里有 GoogleColab 的教程、代码以及 distillpub 的文章
28)概念激活向量测试
类似的道理:大多数可解释性方法显示每个输入特征(例如,像素)中的重要权重。相反,TCAV 显示了高层次概念(例如,颜色、性别、种族)的重要性,即人类如何交流。
网址:https://github.com/tensorflow/tcav
29)Cleverhans
如果你的模型的表现高度取决于输入数据,那么可以通过操纵或污染数据来破坏这些模型。在 @goodfellow_ian 的博客上可以看到如何使用 cleverhans 为对抗攻击的脆弱性评估提供基准库!
网址是:https://github.com/tensorflow/cleverhans
30)Rust + Haskell 和 C API 的结合
我在前面提到过 rstats 支持,并且希望确保也能提到其它社区项目(TensorFlowSharp 是由 MiguelDigias 创造的)。
可以查看网址:
https://github.com/tensorflow/rust
https://github.com/tensorflow/haskell
https://github.com/migueldeicaza/TensorFlowSharp
via DynamicWebPaige's Twitter,AI 科技评论整理。
点击阅读原文,查看机器学习+TensorFlow教程+数学经典教材合辑大礼包