【入门教程】TensorFlow 官方文档使用教程

面对种类繁多的 TensorFlow 文档,入门新手该从何学起呢?具有丰富 TensorFlow 经验的资深专家、TensorFlow 技术推广工程师魏巍为大家编写了一个简单实用的文档教程和指引,帮助初学者们更有效地学习和使用 TensorFlow 2。一起来看看吧!

【入门教程】TensorFlow 官方文档使用教程_第1张图片

TensorFlow 2015 年开源以来,已经发展成为一个庞大的生态系统。TensorFlow 团队一直致力于添加新的功能和 API,同时文档也不断增加和演进。在 2019 年我们也从 1.x 升级到了 2.x,这是巨大的飞跃和变革,让我们大大改进了 TensorFlow 的易用性,降低了 TensorFlow 的学习和使用门槛,同时文档上也有了大量更新和增强。

以下全文内容丰富,大家可以通过目录了解:

1. 熟悉 TensorFlow 文档,从整体组织开始

2. TensorFlow 文档使用四部曲

  • Tutorial 教程
  • Guide 指南
  • API reference
  • Keras API 的学习

3. 遇到难题,如何解决?

4. 难题未能解决,如何求助?

5. 其他实用学习资源

 

01 熟悉 TensorFlow 文档,从整体组织开始

TensorFlow 官网有多种语言的文档,大家可以在右上角自由选择语言。中文文档一直在持续更新,我们也欢迎志愿者参与翻译,改善中文文档的质量。

参与方式:关注 TensorFlow 微信公众号 (TensorFlow_official) 后回复“翻译组”,按指引操作。

因为本文主要是针对初学者,所以集中关注在 TF Core,也就是与模型训练直接相关的文档。TF Core 的文档主要分为三类:

1. Tutorial(教程)

完整的 notebook 示例教程,可以下载或直接在colab里运行;

2. Guide(指南)

关于某个特定话题的深入文档,当你需要定制某些功能和组件的时候,建议把相关主题的 guide 先读懂;

3. API reference(API参考)

关于具体某个 API 的使用参考文档,适用于具体使用 API 碰到问题的时候参考。

 

三类文档又会相互引用,比如 guide 和 API reference 经常会链接到某个 tutorial ,作为示例。

除了 TF Core 以外,还有几个重要的组件,大家可以去参考相关详细的文档:

  • TensorFlow Lite
  • Tensorflow.js 
  • TensorFlow Extended (TFX)
  • TensorFlow Hub
  • Swift for TensorFlow 

 

02 TensorFlow 文档使用四部曲

  • Tutorial 教程

如果你是新手,建议先看 Tutorial 里 For beginners 的部分,建立起直观感受,大概了解使用  TensorFlow  的基本思路以及 Keras 的基本用法,同时也对机器学习/深度学习的理论有一定了解。掌握基本知识后可以去学习 Keras guide(下一节),了解 Keras 更高级的使用方法和更复杂的神经网络。

之后可以开始学习 Tutorial 里面 For experts 的部分,这部分涉及定制模型,分布式训练,常见的机器学习任务(CV / NLP 等等)等。遇到不懂的部分,这时候参考 guide 和 API reference就很重要。

 

  • Guide 指南

Guide 部分是关于常见主题的深入讨论,个人认为它是开始阶段的核心学习部分。目前 guide 分为几个核心模块,大家可以按进阶顺序“享用”:

1. 初级

Keras: 教你怎么使用 Keras API,是 TensorFlow 2 的核心,建议看完初级教程后集中研究这部分;

Data input pipelines: 教你如何高效的使用数据输入管道,建议学习完 Keras API 后学习该部分;

Save a model: 如何导出模型和训练 checkpoint,这部分虽然简短但很重要,可配合打好基础;

2. 进阶

Accelerators: 如何使用 GPU/TPU 和分布式训练,建议当要训练大模型的时候开始学习这部分;

Performance: 性能调优,建议当你的模型训练很慢的时候,深入学习这一部分;

3. 高级

TensorFlow basics: TensorFlow 底层核心的概念,这部分涉及比较底层的概念,建议留在有一定经验以后再学习;

Customization: 自定义算子,这是高级话题,建议留在有一定经验以后再学习;

Estimator: estimator 的使用。Keras 目前是推荐的高层API,建议这部分可先跳过

TensorFlow 2: 这部分是帮助 TensorFlow 1 用户迁移到 TensorFlow 2 的。如果你未使用过 TensorFlow 1,这部分可以忽略。同时这里也强烈建议大家升级到 TensorFlow 2.x,获得更优的体验。

【入门教程】TensorFlow 官方文档使用教程_第2张图片

 

  • API reference

当碰到具体的 API 不会使用时,参考这部分文档可以帮到你。API reference 会按照不同版本组织,大家需要注意选中自己使用的版本。TensorFlow API 数量庞大,这里就不具体展开讲,相信只要使用好官网的搜索功能,找到对应的 API 是比较容易的,同时也会提供对应的 tutorial 链接和简短的使用范例。比如 tf.lookup.StaticHashTable 函数:

【入门教程】TensorFlow 官方文档使用教程_第3张图片

有时候 API reference 部分写得不够详细,或者你需要使用文档里也没有谈及的更高级的功能,这时候可能就需要去直接看源代码了。

 

  • Keras API 的学习

正如前面提到的,Keras 是 TensorFlow 2 的核心 API,也是推荐大家使用的高阶 API。在这里不具体展开讲解如何使用 Keras,但从文档的角度,我们可以看看如何学习 Keras API 。Keras 主要包括模型搭建模型训练两部分:

【入门教程】TensorFlow 官方文档使用教程_第4张图片

如这里所示,你需要知道一系列搭建模型的 API ,也就对应了 guide 里面的如下部分:

  • Sequential API
  • Keras functional API
  • RNN with Keras
  • Masking and padding with Keras
  • Write custom layers and models

最右边的子类化 (subclassing) ,需要用到 TensorFlow 底层的 tensor / variable 等概念,可以参考TensorFlow basics 指南:

【入门教程】TensorFlow 官方文档使用教程_第5张图片

模型搭建完之后就需要训练,这部分对应的文档如下:

  • Train and evaluate
  • Save and load Keras models
  • Transfer learning
  • Customizing what happens in fit:
  • Write custom callback
  • Writing a training loop from scratch

最右边的自定义循环训练 (custom training loop) 需要懂求导/梯度等概念,可以参考 Automatic differentiation 指南。

 

03 遇到难题,如何解决?

这里简单提一下,对于一些中高级用户,碰到的可能都是非常具体的细节问题,不少情况下文档里不会直接谈到。碰到这种情况,建议:

  • 仔细查找文档

尤其是相关主题的 guide 和 API reference 都仔细读懂。

  • 参考 tutorial

CV 类的问题看 CV tutorial,NLP 类的问题看 NLP tutorial。

  • 参考 TensorFlow Model Garden 里的实现
  • 使用搜索引擎

绝大部分问题前人都碰到过,所以有效使用搜索引擎能很快给你指引方向。

  • 升级/降级 TensorFlow 版本

某些 bug 只会在特定版本出现,换一个版本或许已经被修复。

  • 查看 TensorFlow 源代码

这个是比较消耗时间的途径,不过如果你愿意持续投入时间的话,长期来看是最好的学习方法。

 

04 难题未能解决,如何求助?

如果仔细搜索过相关信息还是未能解决的话,TensorFlow  社区有多个求助渠道或许可以帮你解决问题(多数邮件组会有相关 TensorFlow 工程师直接回复):

  • 如果是不会使用某个功能或者API,可以去 stackoverflow 发问。
  • 如果怀疑碰到了 bug,可以先在 GitHub 上搜索有没有人碰到过类似的问题,如果没有的话可以提交一个 issue。
  • TensorFlow 开发论坛
  • 更多的邮件组和帮助渠道

 

05 其他实用学习资源

除了文档和邮件组以外,这里再介绍一下另外 2 个资源:

  • 机器学习领域需要同时掌握理论和编程工具,TensorFlow 作为编程工具,但是如果你要增强理论学习的话,官网上汇总了书、博客、视频、网课的各种资料。个人最推荐《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》这本书和 Stanford CS231n 课程。
  • TensorFlow 的每个新版本都会发布 release note,例如 2.3 release notes。里面会介绍引入了哪些新功能,改动了哪些 API 和修复了哪些 bug ,对于一些碰到 bug 或者急切等待某个新功能的用户,查看 release notes 会很有帮助。

 

如果你对本文中提到的文档信息存在疑问,欢迎移步“问答”版块发帖提问。你的问题有机会得到 CSDN 百大热门技术博主、资深社区作者或者 TensorFlow 资深开发者的解答哦!同时,我们也欢迎你积极地在这个版块里,回答其他小伙伴提出的问题,成为 CSDN 社区贡献者,迈出出道第一步!马上开始讨论吧!

想了解更多入门教程和产品信息?扫码关注TensorFlow官方微信公众号(TensorFlow_official),产品更新、课程教学、技术实践、应用实例等精彩内容一网打尽!

 

你可能感兴趣的:(人工智能,机器学习,深度学习,tensorflow,神经网络)