作者 | Aymeric Damien
编辑 | 奇予纪
出品 | 磐创AI团队
原项目 | https://github.com/aymericdamien/TensorFlow-Examples/
写在前面的话
TensorFlow是谷歌2015年开源的通用高性能计算库。最初主要是为构建神经网络(NNs)提供高性能的API。然而,随着时间的推移和机器学习(ML)社区的兴起,TensorFlow已经发展为一个完整的机器学习生态系统。
TensorFlow虽是深度学习领域最广泛使用的框架,但是对比PyTorch这一动态图框架,采用静态图(Graph模式)的TensorFlow确实是难用。好在最近TensorFlow支持了eager模式,对标PyTorch的动态执行机制。更进一步地,Google推出了全新的版本TensorFlow 2.0,2.0版本相比1.0版本不是简单地更新,而是一次重大升级。
简单地来说,TensorFlow 2.0默认采用eager执行模式,而且重整了很多混乱的模块。毫无疑问,2.0版本将会逐渐替换1.0版本,所以很有必要趁早入手TensorFlow 2.0。
本系列将对aymericdamien使用tensorflow2.0编写的示例注释进行翻译,以便大家快速上手。翻译过程中难免有疏漏,如发现错误,希望大家指出,谢谢支持。
github项目地址:
https://github.com/aymericdamien/TensorFlow-Examples/tree/master/tensorflow_v2
0. 前言
- 机器学习介绍
- MNIST 数据集介绍
1. 介绍
- Hello World。一个非常简单的示例,学习如何使用TensorFlow 2.0打印“ hello world”。
- 基础操作。一个包含TensorFlow 2.0基础操作的简单示例。
2. 基础模型
- 线性回归。使用TensorFlow 2.0实现线性回归。
- 逻辑回归。使用TensorFlow 2.0实现逻辑回归。
- Word2Vec (Word Embedding)。使用TensorFlow 2.0从Wikipedia数据构建一个Word Embedding 模型(Word2Vec)。
3. 神经网络
监督方式
- 简单神经网络。使用TensorFlow 2.0的“layers”和“model”API构建一个简单的神经网络来对MNIST数字数据集进行分类。
- 简单神经网络(低级)。一个原始的简单神经网络实现来对MNIST数字数据集进行分类。
- 卷积神经网络。使用TensorFlow 2.0的“layers”和“model”API构建卷积神经网络对MNIST数字数据集进行分类。
- 卷积神经网络(低级)。原始卷积神经网络的实现来对MNIST数字数据集进行分类。
- 递归神经网络(LSTM)。使用TensorFlow 2.0“layers”和“model”API,构建递归神经网络(LSTM)对MNIST数字数据集进行分类。
- 双向递归神经网络(LSTM)。使用TensorFlow 2.0“layers”和“model”API,构建双向递归神经网络(LSTM)对MNIST数字数据集进行分类。
- 动态递归神经网络(LSTM)。使用TensorFlow 2.0“layers”和“model”API,构建一个递归神经网络(LSTM),对可变长度序列进行动态计算分类。
无监督方式
- 自编码器。构建一个自编码器,将一个图像编码到一个较低的维度,并重新构建它。
- 深度卷积生成对抗网络(DCGAN)。构建深度卷积生成对抗网络(DCGAN)以从噪声生成图像。
4. 工具
- 保存和加载模型。使用TensorFlow 2.0保存和加载模型。
- 构建自定义层和模块。学习如何构建自己的层/模块,并将它们集成到TensorFlow 2.0模型中。
5. 数据管理
- 加载和解析数据。使用TensorFlow 2.0构建高效的数据管道(Numpy数组、图像、CSV文件、自定义数据等)。
- 构建和加载TFRecords。将数据转换为TFRecords格式,并使用TensorFlow 2.0加载它们。
- 图像变换(即图像增强)。使用TensorFlow 2.0应用各种图像增强技术,生成用于训练的失真图像。
安装
要安装TensorFlow 2.0,只需运行:
pip install tensorflow==2.0.0
或者(如果你需要GPU版本):
pip install tensorflow_gpu==2.0.0