TensorFlow 示例
本教程旨在通过示例轻松深入了解 TensorFlow。为了便于阅读,它包括 TF v1 和 v2 的笔记本和带有解释的源代码。
它适合想要找到有关 TensorFlow 的清晰简洁示例的初学者。除了传统的“原始”TensorFlow 实现之外,您还可以找到最新的 TensorFlow API 实践(例如layers
、 estimator
、 dataset
……)。
更新(05/16/2020):将所有默认示例移至 TF2。对于 TF v1 示例:请查看此处。
教程索引
0 - 先决条件
1 - 简介
- 你好世界(笔记本)。非常简单的示例,了解如何使用 TensorFlow 2.0+ 打印“hello world”。
- 基本操作(笔记本)。一个涵盖 TensorFlow 2.0+ 基本操作的简单示例。
2 - 基本模型
- 线性回归(笔记本)。使用 TensorFlow 2.0+ 实现线性回归。
- 逻辑回归(笔记本)。使用 TensorFlow 2.0+ 实现逻辑回归。
- Word2Vec(词嵌入) (笔记本)。使用 TensorFlow 2.0+ 从维基百科数据构建词嵌入模型 (Word2Vec)。
- GBDT(梯度提升决策树) (笔记本)。使用 TensorFlow 2.0+ 实现梯度提升决策树,以使用 Boston Housing 数据集预测房屋价值。
3 - 神经网络
监督
- 简单神经网络(笔记本)。使用 TensorFlow 2.0“层”和“模型”API 构建一个简单的神经网络来对 MNIST 数字数据集进行分类。
- 简单神经网络(低级) (笔记本)。用于对 MNIST 数字数据集进行分类的简单神经网络的原始实现。
- 卷积神经网络(笔记本)。使用 TensorFlow 2.0+“层”和“模型”API 构建卷积神经网络来对 MNIST 数字数据集进行分类。
- 卷积神经网络(低级) (笔记本)。用于对 MNIST 数字数据集进行分类的卷积神经网络的原始实现。
- 递归神经网络(LSTM) (笔记本)。使用 TensorFlow 2.0“层”和“模型”API 构建循环神经网络 (LSTM) 对 MNIST 数字数据集进行分类。
- 双向循环神经网络 (LSTM) (笔记本)。使用 TensorFlow 2.0+“层”和“模型”API 构建双向循环神经网络 (LSTM) 以对 MNIST 数字数据集进行分类。
- 动态循环神经网络(LSTM) (笔记本)。使用 TensorFlow 2.0+“层”和“模型”API 构建一个循环神经网络 (LSTM),执行动态计算以对可变长度的序列进行分类。
无监督
- 自动编码器(笔记本)。构建一个自动编码器将图像编码到较低维度并重新构建它。
- DCGAN(深度卷积生成对抗网络) (笔记本)。构建深度卷积生成对抗网络 (DCGAN) 以从噪声中生成图像。
4 - 公用事业
- 保存和恢复模型(笔记本)。使用 TensorFlow 2.0+ 保存和恢复模型。
- 构建自定义层和模块(笔记本)。了解如何构建您自己的层/模块并将其集成到 TensorFlow 2.0+ 模型中。
- 张量板(笔记本)。使用 TensorFlow 2.0+ 张量板跟踪和可视化神经网络计算图、指标、权重等。
5 - 数据管理
- 加载和解析数据(笔记本)。使用 TensorFlow 2.0 构建高效的数据管道(Numpy 数组、图像、CSV 文件、自定义数据……)。
- 构建并加载 TFRecords (笔记本)。将数据转换为 TFRecords 格式,并使用 TensorFlow 2.0+ 加载它们。
- 图像变换(即图像增强) (笔记本)。通过 TensorFlow 2.0+ 应用各种图像增强技术,生成用于训练的扭曲图像。
6 - 硬件
- 多 GPU 训练(笔记本)。在 CIFAR-10 数据集上训练具有多个 GPU 的卷积神经网络。
TensorFlow v1
TF v1 的教程索引可在此处获取:TensorFlow v1.15 示例。或者参见下面的示例列表。
数据集
一些示例需要 MNIST 数据集进行训练和测试。不用担心,运行示例时会自动下载该数据集。 MNIST 是一个手写数字数据库,要快速描述该数据集,您可以查看此笔记本。
官方网站:http://yann.lecun.com/exdb/mnist/。
安装
要下载所有示例,只需克隆此存储库:
git clone https://github.com/aymericdamien/TensorFlow-Examples
要运行它们,您还需要最新版本的 TensorFlow。要安装它:
或(需要 GPU 支持):
pip install tensorflow_gpu
有关TensorFlow安装的更多详细信息,可以查看TensorFlow安装指南
TensorFlow v1 示例 - 索引
TF v1 的教程索引可在此处获取:TensorFlow v1.15 示例。
0 - 先决条件
1 - 简介
- 你好世界(笔记本)(代码)。非常简单的示例,了解如何使用 TensorFlow 打印“hello world”。
- 基本操作(笔记本)(代码)。一个涵盖 TensorFlow 基本操作的简单示例。
- TensorFlow Eager API 基础知识(笔记本)(代码)。开始使用 TensorFlow 的 Eager API。
2 - 基本模型
- 线性回归(笔记本)(代码)。使用 TensorFlow 实现线性回归。
- 线性回归(eager api) (笔记本)(代码)。使用 TensorFlow 的 Eager API 实现线性回归。
- 逻辑回归(笔记本)(代码)。使用 TensorFlow 实现逻辑回归。
- 逻辑回归(eager api) (笔记本)(代码)。使用 TensorFlow 的 Eager API 实现逻辑回归。
- 最近邻(笔记本)(代码)。使用 TensorFlow 实现最近邻算法。
- K-Means (笔记本)(代码)。使用 TensorFlow 构建 K-Means 分类器。
- 随机森林(笔记本)(代码)。使用 TensorFlow 构建随机森林分类器。
- 梯度提升决策树(GBDT) (笔记本)(代码)。使用 TensorFlow 构建梯度提升决策树 (GBDT)。
- Word2Vec(词嵌入) (笔记本)(代码)。使用 TensorFlow 从维基百科数据构建词嵌入模型 (Word2Vec)。
3 - 神经网络
监督
- 简单神经网络(笔记本)(代码)。构建一个简单的神经网络(又名多层感知器)来对 MNIST 数字数据集进行分类。原始 TensorFlow 实现。
- 简单神经网络(tf.layers/estimator api) (笔记本)(代码)。使用 TensorFlow“层”和“估计器”API 构建一个简单的神经网络(又名多层感知器)来对 MNIST 数字数据集进行分类。
- 简单神经网络(eager api) (笔记本)(代码)。使用 TensorFlow Eager API 构建一个简单的神经网络(又名多层感知器)来对 MNIST 数字数据集进行分类。
- 卷积神经网络(笔记本)(代码)。构建卷积神经网络对 MNIST 数字数据集进行分类。原始 TensorFlow 实现。
- 卷积神经网络(tf.layers/estimator api) (笔记本)(代码)。使用 TensorFlow“层”和“估计器”API 构建卷积神经网络来对 MNIST 数字数据集进行分类。
- 递归神经网络(LSTM) (笔记本)(代码)。构建循环神经网络 (LSTM) 对 MNIST 数字数据集进行分类。
- 双向循环神经网络(LSTM) (笔记本)(代码)。构建双向循环神经网络 (LSTM) 对 MNIST 数字数据集进行分类。
- 动态循环神经网络(LSTM) (笔记本)(代码)。构建一个循环神经网络 (LSTM),执行动态计算以对不同长度的序列进行分类。
无监督
- 自动编码器(笔记本)(代码)。构建一个自动编码器将图像编码到较低维度并重新构建它。
- 变分自动编码器(笔记本)(代码)。构建变分自动编码器 (VAE),对噪声进行编码并生成图像。
- GAN(生成对抗网络) (笔记本)(代码)。构建生成对抗网络 (GAN) 以从噪声中生成图像。
- DCGAN(深度卷积生成对抗网络) (笔记本)(代码)。构建深度卷积生成对抗网络 (DCGAN) 以从噪声中生成图像。
4 - 公用事业
- 保存和恢复模型(笔记本)(代码)。使用 TensorFlow 保存和恢复模型。
- Tensorboard - 图形和损失可视化(笔记本)(代码)。使用 Tensorboard 可视化计算图并绘制损失。
- Tensorboard - 高级可视化(笔记本)(代码)。深入 Tensorboard;可视化变量、梯度等等...
5 - 数据管理
- 构建图像数据集(笔记本)(代码)。使用 TensorFlow 数据队列从图像文件夹或数据集文件构建您自己的图像数据集。
- TensorFlow 数据集 API (笔记本)(代码)。引入 TensorFlow Dataset API 用于优化输入数据管道。
- 加载和解析数据(笔记本)。构建高效的数据管道(Numpy 数组、图像、CSV 文件、自定义数据……)。
- 构建并加载 TFRecords (笔记本)。将数据转换为 TFRecords 格式并加载。
- 图像变换(即图像增强) (笔记本)。应用各种图像增强技术,生成用于训练的扭曲图像。
6 - 多 GPU
- 多 GPU(笔记本)上的基本操作(代码)。在 TensorFlow 中引入多 GPU 的简单示例。
- 在多 GPU(笔记本)上训练神经网络(代码)。清晰简单的 TensorFlow 实现,用于在多个 GPU 上训练卷积神经网络。
更多示例
以下示例来自 TFLearn,这是一个为 TensorFlow 提供简化界面的库。你可以看看,有很多例子和预建的操作和图层。
教程
- TFLearn 快速入门。通过具体的机器学习任务了解 TFLearn 的基础知识。构建并训练深度神经网络分类器。
示例
- TFLearn 示例。使用 TFLearn 的大量示例。