深度学习常用框架样例资源
本文转自计算机博士黄海广的知乎专栏,这篇文章对初学者特别友好,项目代码由浅入深,可以快速掌握这三种框架搭建并训练网络的方法。
一.TensorFlow
资源链接:点我
资源介绍:
- 本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。
- 它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, …)。
配置环境:
- python 3.6以上,TensorFlow 1.8以上
资源目录:
0 - 先决条件
- 机器学习简介
- MNIST数据集简介
1 - 简介
- Hello World(包含notebook和py源代码)。非常简单的例子,学习如何使用TensorFlow打印“hello world”。
- 基本操作(包含notebook和py源代码)。一个涵盖TensorFlow基本操作的简单示例。
- TensorFlow Eager API基础知识(包含notebook和py源代码)。开始使用TensorFlow的Eager API。
2 - 基础模型
- 线性回归(包含notebook和py源代码)。使用TensorFlow实现线性回归。
- 线性回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现线性回归。
- Logistic回归(包含notebook和py源代码)。使用TensorFlow实现Logistic回归。
- Logistic回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现Logistic回归。
- 最近邻(包含notebook和py源代码)。使用TensorFlow实现最近邻算法。
- K-Means(包含notebook和py源代码)。使用TensorFlow构建K-Means分类器。
- 随机森林(包含notebook和py源代码)。使用TensorFlow构建随机森林分类器。
- Gradient Boosted Decision Tree(GBDT)(包含notebook和py源代码)。使用TensorFlow构建梯度提升决策树(GBDT)。
- Word2Vec(词嵌入)(包含notebook和py源代码)。使用TensorFlow从Wikipedia数据构建词嵌入模型(Word2Vec)。
3 - 神经网络
监督学习
- 简单神经网络(包含notebook和py源代码)。构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。 Raw TensorFlow实现。
- 简单神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow’layers’和’estimator’API构建一个简单的神经网络(如:Multi-layer Perceptron)来对MNIST数字数据集进行分类。
- 简单神经网络(Eager API)(包含notebook和py源代码)。使用TensorFlow Eager API构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。
- 卷积神经网络(包含notebook和py源代码)。构建卷积神经网络以对MNIST数字数据集进行分类。 Raw TensorFlow实现。
- 卷积神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow’layers’和’estimator’API构建卷积神经网络,对MNIST数字数据集进行分类。
- 递归神经网络(LSTM)(包含notebook和py源代码)。构建递归神经网络(LSTM)以对MNIST数字数据集进行分类。
- 双向LSTM(包含notebook和py源代码)。构建双向递归神经网络(LSTM)以对MNIST数字数据集进行分类。
- 动态LSTM(包含notebook和py源代码)。构建一个递归神经网络(LSTM),执行动态计算以对不同长度的序列进行分类。
无监督
- 自动编码器(包含notebook和py源代码)。构建自动编码器以将图像编码为较低维度并重新构建它。
- 变分自动编码器((包含notebook和py源代码)。构建变分自动编码器(VAE),对噪声进行编码和生成图像。
- GAN(Generative Adversarial Networks)(包含notebook和py源代码)。构建生成对抗网络(GAN)以从噪声生成图像。
- DCGAN(Deep Convolutional Generative Adversarial Networks)(包含notebook和py源代码)。构建深度卷积生成对抗网络(DCGAN)以从噪声生成图像。
4 - 工具
- 保存和还原模型(包含notebook和py源代码)。使用TensorFlow保存和还原模型。
- Tensorboard - 图形和损失可视化(包含notebook和py源代码)。使用Tensorboard可视化计算图并绘制损失。
- Tensorboard - 高级可视化(包含notebook和py源代码)。深入了解Tensorboard;可视化变量,梯度等…
5 - 数据管理
- 构建图像数据集(包含notebook和py源代码)。使用TensorFlow数据队列,从图像文件夹或数据集文件构建您自己的图像数据集。
- TensorFlow数据集API(包含notebook和py源代码)。引入TensorFlow数据集API以优化输入数据管道。
6 - 多GPU
- 多GPU的基本操作(包含notebook和py源代码)。在TensorFlow中引入多GPU的简单示例。
- 在多GPU上训练神经网络(包含notebook和py源代码)。一个清晰简单的TensorFlow实现,用于在多个GPU上训练卷积神经网络。
数据集
二、Keras
资源链接:点我
资源介绍:
- 这个github的repository主要是ErhWen Kuo在学习Keras的一些记录及练习。希望在学习过程中发现到一些好的信息与示例也可以对想要学习使用Keras来解决问题的同学带来帮助。
- 这些notebooks主要是使用Python 3.6与Keras 2.1.1版本跑在一台配置Nivida 1080Ti的Windows 10的机台所产生的结果,但有些部份会参杂一些Tensorflow与其它的函式库的介绍。
配置环境:
- python 3.6以上,Keras 2.1.1
资源目录:
0.图象数据集/工具介绍
- COCO API解说与简单示例
- 土炮自制扑克牌图象数据集
- 使用Pillow来进行图像处理
1.Keras API示例
- 使用图像增强来进行深度学习
- 如何使用Keras函数式API进行深度学习
- 从零开始构建VGG网络来学习Keras
- 使用预训练的模型来分类照片中的物体
- 使用图像增强来训练小数据集
- 使用预先训练的卷积网络模型
- 卷积网络模型学习到什么的可视化
- 构建自动编码器(Autoencoder)
- 序列到序列(Seq-to-Seq)学习介绍
- One-hot编码工具程序介绍
- 循环神经网络(RNN)介绍
- LSTM的返回序列和返回状态之间的区别
- 用LSTM来学习英文字母表顺序
2.图像分类(Image Classification)
- Julia(Chars74K)字母图像分类
- 交通标志图像分类
- 辛普森卡通图像角色分类
- 时尚服饰图像分类
- 人脸关键点辨识
- Captcha验证码分类
- Mnist手写图像分类(MLP)
- Mnist手写图像分类(CNN)
3.目标检测(Object Recognition)
- YOLO目标检测算法概念与介绍
- YOLOv2目标检测示例
- 浣熊(Racoon)检测-YOLOv2模型训练与调整
- 浣熊(Racoon)检测-YOLOv2模型的使用
- 袋鼠(Kangaroo)检测-YOLOv2模型训练与调整
- 双手(Hands)检测-YOLOv2模型训练与调整
- 辛普森卡通图象角色(Simpson)检测-YOLOv2模型训练与调整
- MS COCO图象检测-YOLOv2模型训练与调整
4.物体分割(Object Segmentation)
5.关键点检测(Keypoint Detection)
6.图象标题(Image Caption)
7.人脸检测识别(Face Detection/Recognition)
- 人脸检测- OpenCV(Haar特征分类器)
- 人脸检测- MTCNN(Multi-task Cascaded Convolutional Networks)
- 人脸识别-脸部检测、对齐&裁剪
- 人脸识别-人脸部特征提取&人脸分类器
- 人脸识别-转换、对齐、裁剪、特征提取与比对
- 脸部关键点检测(dlib)
- 头部姿态(Head pose)估计(dlib)
8.自然语言处理(Natural Language Processing)
- 词嵌入(word embeddings)介绍
- 使用结巴(jieba)进行中文分词
- Word2vec词嵌入(word embeddings)的基本概念
- 使用结巴(jieba)进行歌词分析
- 使用gensim训练中文词向量(word2vec)
三、Pytorch
资源链接:点我
资源介绍:
- 这个资源为深度学习研究人员提供了学习PyTorch的教程代码大多数模型都使用少于30行代码实现。 在开始本教程之前,建议先看完Pytorch官方教程。
配置环境:
- python 2.7或者3.5以上,pytorch 0.4
资源目录:
1.基础知识
- PyTorch基础知识
- 线性回归
- Logistic回归
- 前馈神经网络
2.中级
- 卷积神经网络
- 深度残差网络
- 递归神经网络
- 双向递归神经网络
- 语言模型(RNN-LM)
3.高级
- 生成性对抗网络
- 变分自动编码器
- 神经风格转移
- 图像字幕(CNN-RNN)
4.工具
- PyTorch中的TensorBoard