本教程旨在通过示例轻松地深入TensorFlow。为了可读性,它包括笔记本和解释源代码,无论是TF v1和v2。
它适用于初学者谁想找到明确和简洁的例子张量流。除了传统的“原始”TensorFlow实现之外,您还可以找到最新的TensorFlow API实践(如层、估计器、数据集等)。
layers
estimator
dataset
更新(08/17/2019):添加了新的TensorFlow 2.0示例!(很快就会有更多)。
如果您使用的是旧的TensorFlow版本(0.11及以下),请看这里。
教程索引
0-先决条件
- 机器学习导论。
- MNIST数据集简介。
1-简介
- 你好世界(笔记本)(代码)。非常简单的例子来学习如何使用TensorFlow打印“hello world”。
- 基本操作(笔记本电脑)(代码)。一个简单的例子,涵盖了TensorFlow的基本操作。
- TensorFlow渴望API基础(笔记本)(代码)。开始使用TensorFlow的热切API。
2-基本模型
- 线性回归(笔记本)(代码)。用TensorFlow实现线性回归。
- 线性回归(eager api)(笔记本)(代码)。使用TensorFlow的Eager API实现线性回归。
- 逻辑回归(笔记本)(代码)。用TensorFlow实现Logistic回归。
- Logistic回归(eager-api)(笔记本)(代码)。使用TensorFlow的Eager API实现逻辑回归。
- 最近的邻居(笔记本)(代码)。利用TensorFlow实现最近邻算法。
- K-表示(笔记本)(代码)。用TensorFlow构造K-Means分类器。
- 随机林(笔记本)(代码)。用TensorFlow构造一个随机森林分类器。
- 梯度增强决策树(GBDT)(笔记本)(代码)。利用张量流建立梯度增强决策树(GBDT)。
- Word2Vec(单词嵌入)(笔记本)(代码)。使用TensorFlow从Wikipedia数据构建一个单词嵌入模型(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)从噪声中生成图像。
- 深度卷积世代对抗网络(笔记本电脑)(代码)。建立一个深度卷积的生成对抗网络(DCGAN),从噪声中生成图像。
4-公用设施
- 保存并还原模型(笔记本)(代码)。使用TensorFlow保存和还原模型。
- 张力板-图形和损失可视化(笔记本)(代码)。使用Tensorboard可视化计算图并绘制损失。
- Tensorboard-高级可视化(笔记本)(代码)。深入到张力板;可视化变量、梯度等等。。。
5-数据管理
- 生成图像数据集(笔记本)(代码)。使用TensorFlow数据队列从图像文件夹或数据集文件构建您自己的图像数据集。
- TensorFlow数据集API(笔记本)(代码)。引入TensorFlow数据集API优化输入数据管道。
- 加载和分析数据(笔记本电脑)。构建高效的数据管道(Numpy数组、图像、CSV文件、自定义数据…)。
- 生成并加载TFRecords(笔记本)。将数据转换为TFRecords格式,并加载它们。
- 图像转换(即图像增强)(笔记本)。应用各种图像增强技术,生成失真图像进行训练。
6-多GPU
- 多GPU(笔记本电脑)(代码)上的基本操作。在TensorFlow中引入多GPU的一个简单例子。
- 在多GPU(笔记本电脑)(代码)上训练神经网络。在多个gpu上训练卷积神经网络的一种简单明了的TensorFlow实现。
TensorFlow 2.0版
TF v2的教程索引在这里提供:TensorFlow 2.0示例。
数据集
有些例子需要MNIST数据集进行训练和测试。别担心,运行examples时会自动下载此数据集。MNIST是一个手写数字的数据库,要快速描述此数据集,可以查看此笔记本。
官方网站:http://yann.lecun.com/exdb/mnist/。
安装
要下载所有示例,只需克隆此存储库:
git clone https://github.com/aymericdamien/TensorFlow-Examples
要运行它们,还需要最新版本的TensorFlow。要安装它:
pip install tensorflow
或(有GPU支持):
pip install tensorflow_gpu
有关TensorFlow安装的更多详细信息,可以查看TensorFlow安装指南
更多示例
以下示例来自TFLearn,它是一个为TensorFlow提供简化接口的库。你可以看看,有很多例子和预先构建的操作和层。
教程
- t学习快速入门。通过具体的机器学习任务学习TFLearn的基础知识。建立并训练一个深度神经网络分类器。
实例
- t学习示例。使用TFLearn的大量示例集合。