导语:本文是TensorFlow实现流行机器学习算法的教程汇集,目标是让读者可以轻松通过清晰简明的案例深入了解 TensorFlow。这些案例适合那些想要实现一些 TensorFlow 案例的初学者。本教程包含还包含笔记和带有注解的代码。
第一步:给TF新手的教程指南
1:tf初学者需要明白的入门准备
机器学习入门笔记:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/ml_introduction.ipynb
MNIST 数据集入门笔记
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb
2:tf初学者需要了解的入门基础
Hello World
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/helloworld.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/helloworld.py
基本操作
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/basic_operations.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/basic_operations.py
3:tf初学者需要掌握的基本模型
最近邻:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/nearest_neighbor.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/nearest_neighbor.py
线性回归:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/linear_regression.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py
Logistic 回归:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/logistic_regression.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/logistic_regression.py
4:tf初学者需要尝试的神经网络
多层感知器:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/multilayer_perceptron.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py
卷积神经网络:
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/convolutional_network.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/convolutional_network.py
循环神经网络(LSTM):
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/recurrent_network.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py
双向循环神经网络(LSTM):
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/bidirectional_rnn.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/bidirectional_rnn.py
动态循环神经网络(LSTM)
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/dynamic_rnn.py
自编码器
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/autoencoder.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py
5:tf初学者需要精通的实用技术
保存和恢复模型
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/save_restore_model.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/save_restore_model.py
图和损失可视化
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/tensorboard_basic.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_basic.py
Tensorboard——高级可视化
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_advanced.py
5:tf初学者需要的懂得的多GPU基本操作
多 GPU 上的基本操作
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/5_MultiGPU/multigpu_basics.ipynb
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_MultiGPU/multigpu_basics.py
6:案例需要的数据集
有一些案例需要 MNIST 数据集进行训练和测试。运行这些案例时,该数据集会被自动下载下来(使用 input_data.py)。
MNIST数据集笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb
官方网站:http://yann.lecun.com/exdb/mnist/
第二步:为TF新手准备的各个类型的案例、模型和数据集
初步了解:TFLearn TensorFlow
接下来的示例来自TFLearn,这是一个为 TensorFlow 提供了简化的接口的库。里面有很多示例和预构建的运算和层。
使用教程:TFLearn 快速入门。通过一个具体的机器学习任务学习 TFLearn 基础。开发和训练一个深度神经网络分类器。
TFLearn地址:https://github.com/tflearn/tflearn
示例:https://github.com/tflearn/tflearn/tree/master/examples
预构建的运算和层:http://tflearn.org/doc_index/#api
笔记:https://github.com/tflearn/tflearn/blob/master/tutorials/intro/quickstart.md
基础模型以及数据集
线性回归,使用 TFLearn 实现线性回归
https://github.com/tflearn/tflearn/blob/master/examples/basics/linear_regression.py
逻辑运算符。使用 TFLearn 实现逻辑运算符
https://github.com/tflearn/tflearn/blob/master/examples/basics/logical.py
权重保持。保存和还原一个模型
https://github.com/tflearn/tflearn/blob/master/examples/basics/weights_persistence.py
微调。在一个新任务上微调一个预训练的模型
https://github.com/tflearn/tflearn/blob/master/examples/basics/finetuning.py
使用 HDF5。使用 HDF5 处理大型数据集
https://github.com/tflearn/tflearn/blob/master/examples/basics/use_hdf5.py
使用 DASK。使用 DASK 处理大型数据集
https://github.com/tflearn/tflearn/blob/master/examples/basics/use_dask.py
计算机视觉模型及数据集
多层感知器。一种用于 MNIST 分类任务的多层感知实现
https://github.com/tflearn/tflearn/blob/master/examples/images/dnn.py
卷积网络(MNIST)。用于分类 MNIST 数据集的一种卷积神经网络实现
https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_mnist.py
卷积网络(CIFAR-10)。用于分类 CIFAR-10 数据集的一种卷积神经网络实现
https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.py
网络中的网络。用于分类 CIFAR-10 数据集的 Network in Network 实现
https://github.com/tflearn/tflearn/blob/master/examples/images/network_in_network.py
Alexnet。将 Alexnet 应用于 Oxford Flowers 17 分类任务
https://github.com/tflearn/tflearn/blob/master/examples/images/alexnet.py
VGGNet。将 VGGNet 应用于 Oxford Flowers 17 分类任务
https://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network.py
VGGNet Finetuning (Fast Training)。使用一个预训练的 VGG 网络并将其约束到你自己的数据上,以便实现快速训练
https://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network_finetuning.py
RNN Pixels。使用 RNN(在像素的序列上)分类图像
https://github.com/tflearn/tflearn/blob/master/examples/images/rnn_pixels.py
Highway Network。用于分类 MNIST 数据集的 Highway Network 实现
https://github.com/tflearn/tflearn/blob/master/examples/images/highway_dnn.py
Highway Convolutional Network。用于分类 MNIST 数据集的 Highway Convolutional Network 实现
https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_highway_mnist.py
Residual Network (MNIST) 。应用于 MNIST 分类任务的一种瓶颈残差网络(bottleneck residual network)
https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_mnist.py
Residual Network (CIFAR-10)。应用于 CIFAR-10 分类任务的一种残差网络
https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_cifar10.py
Google Inception(v3)。应用于 Oxford Flowers 17 分类任务的谷歌 Inception v3 网络
https://github.com/tflearn/tflearn/blob/master/examples/images/googlenet.py
自编码器。用于 MNIST 手写数字的自编码器
https://github.com/tflearn/tflearn/blob/master/examples/images/autoencoder.py
自然语言处理模型及数据集
循环神经网络(LSTM),应用 LSTM 到 IMDB 情感数据集分类任
https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm.py
双向 RNN(LSTM),将一个双向 LSTM 应用到 IMDB 情感数据集分类任务:
https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.py
动态 RNN(LSTM),利用动态 LSTM 从 IMDB 数据集分类可变长度文本:
https://github.com/tflearn/tflearn/blob/master/examples/nlp/dynamic_lstm.py
城市名称生成,使用 LSTM 网络生成新的美国城市名:
https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_cityname.py
莎士比亚手稿生成,使用 LSTM 网络生成新的莎士比亚手稿:
https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_shakespeare.py
Seq2seq,seq2seq 循环网络的教学示例:
https://github.com/tflearn/tflearn/blob/master/examples/nlp/seq2seq_example.py
CNN Seq,应用一个 1-D 卷积网络从 IMDB 情感数据集中分类词序列
https://github.com/tflearn/tflearn/blob/master/examples/nlp/cnn_sentence_classification.py
强化学习案例
Atari Pacman 1-step Q-Learning,使用 1-step Q-learning 教一台机器玩 Atari 游戏:
https://github.com/tflearn/tflearn/blob/master/examples/reinforcement_learning/atari_1step_qlearning.py
第三步:为TF新手准备的其他方面内容
Recommender-Wide&Deep Network,推荐系统中 wide & deep 网络的教学示例:
https://github.com/tflearn/tflearn/blob/master/examples/others/recommender_wide_and_deep.py
Spiral Classification Problem,对斯坦福 CS231n spiral 分类难题的 TFLearn 实现:
https://github.com/tflearn/tflearn/blob/master/examples/notebooks/spiral.ipynb
层,与 TensorFlow 一起使用 TFLearn 层:
https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/layers.py
训练器,使用 TFLearn 训练器类训练任何 TensorFlow 图:
https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/layers.py
Bulit-in Ops,连同 TensorFlow 使用 TFLearn built-in 操作:
https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/builtin_ops.py
Summaries,连同 TensorFlow 使用 TFLearn summarizers:
https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/summaries.py
Variables,连同 TensorFlow 使用 TFLearn Variables:
https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/variables.py
TensorFlow 是一个开源软件库,用于使用数据流图进行数值计算。换句话说,即是构建深度学习模型的最佳方式。本文整理了一些优秀的有关 TensorFlow 的教程和项目列表。
一、教程
TensorFlow Tutorial 1 — 从基础到更有趣的 TensorFlow 应用
TensorFlow Tutorial 2 — 基于 Google TensorFlow 框架的深度学习简介,这些教程是 Newmu 的Theano 直接端口
TensorFlow Examples — 给初学者的 TensorFlow 教程和代码示例
Sungjoon's TensorFlow-101 — 通过 Python 使用 Jupyter Notebook 编写的 TensorFlow 教程
Terry Um’s TensorFlow Exercises — 从其他 TensorFlow 示例重新创建代码
Installing TensorFlow on Raspberry Pi 3 — TensorFlow 在树莓派上正确编译和运行
Classification on time series — 在 TensorFlow 中使用 LSTM 对手机传感器数据进行递归神经网络分类
二、模型/项目
Show, Attend and Tell — 基于聚焦机制的图像字幕生成器(聚焦机制「Attention Mechanism」是当下深度学习前沿热点之一,能够逐个关注输入的不同部分,给出一系列理解)
Neural Style — Neural Style 的实现(Neural Style 是让机器模仿已有画作的绘画风格把一张图片重新绘制的算法)
Pretty Tensor — Pretty Tensor 提供了一个高级构建器 API
Neural Style — Neural Style 的实现
TensorFlow White Paper Notes — 带注释的笔记和 TensorFlow 白皮书的摘要,以及 SVG 图形和文档链接
NeuralArt — 艺术风格神经算法的实现
使用 TensorFlow 和 PyGame 来深度强化学习乒乓球
Generative Handwriting Demo using TensorFlow — 尝试实现 Alex Graves 的论文中随机手写生成部分
Neural Turing Machine in TensorFlow — 神经图灵机的 TensorFlow 实现
GoogleNet Convolutional Neural Network Groups Movie Scenes By Setting — 根据对象,地点和其中显示的其他内容来搜索、过滤和描述视频
Neural machine translation between the writings of Shakespeare and modern English using TensorFlow — 单语翻译,从现代英语到莎士比亚,反之亦然
Chatbot — “一个神经会话模型”的实现
Colornet - Neural Network to colorize grayscale images — 通过神经网络给灰度图像着色
Neural Caption Generator with Attention — 图像理解的 Tensorflow 实现
Weakly_detector — “学习深层特征以区分本地化”的 TensorFlow 实现
Dynamic Capacity Networks — “动态容量网络”的实现
HMM in TensorFlow — HMM 的维特比和前向/后向算法的实现
DeepOSM — 使用 OpenStreetMap 功能和卫星图像训练 TensorFlow 神经网络
DQN-tensorflow — 使用 TensorFlow 通过 OpenAI Gym 实现 DeepMind 的“通过深度强化学习的人类水平控制”
Highway Network — "深度网络训练" 的 TensorFlow 实现
Sentence Classification with CNN — TensorFlow 实现“卷积神经网络的句子分类”
End-To-End Memory Networks — 端到端记忆网络的实现
Character-Aware Neural Language Models — 字符感知神经语言模型的 TensorFlow 实现
YOLO TensorFlow ++ — TensorFlow 实现的 “YOLO:实时对象检测”,具有训练和支持在移动设备上实时运行的功能
Wavenet — WaveNet 生成神经网络架构的 TensorFlow 实现,用于生成音频
Mnemonic Descent Method — 助记符下降法:应用于端对端对准的复现过程