Skip to content

Latest commit

 

History

History
 
 

8.deep-learning

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

一、Coursera深度学习教程中文笔记

github地址https://github.com/fengdu78/deeplearning_ai_books

包含笔记、视频等资源。

课程概述

https://mooc.study.163.com/university/deeplearning_ai#/c

这些课程专为已有一定基础(基本的编程知识,熟悉Python、对机器学习有基本了解),想要尝试进入人工智能领域的计算机专业人士准备。介绍显示:“深度学习是科技业最热门的技能之一,本课程将帮你掌握深度学习。”

在这5堂课中,学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。Deep Learning Specialization对卷积神经网络 (CNN)、递归神经网络 (RNN)、长短期记忆 (LSTM) 等深度学习常用的网络结构、工具和知识都有涉及。

课程中也会有很多实操项目,帮助学生更好地应用自己学到的深度学习技术,解决真实世界问题。这些项目将涵盖医疗、自动驾驶、和自然语言处理等时髦领域,以及音乐生成等等。Coursera上有一些特定方向和知识的资料,但一直没有比较全面、深入浅出的深度学习课程——《深度学习专业》的推出补上了这一空缺。

课程的语言是Python,使用的框架是Google开源的TensorFlow。最吸引人之处在于,课程导师就是吴恩达本人,两名助教均来自斯坦福计算机系。完成课程所需时间根据不同的学习进度,大约需要3-4个月左右。学生结课后,Coursera将授予他们Deep Learning Specialization结业证书。

“我们将帮助你掌握深度学习,理解如何应用深度学习,在人工智能业界开启你的职业生涯。”吴恩达在课程页面中提到。

有同学提供了一个离线视频的下载:链接:https://pan.baidu.com/s/1ciq3qHo0lgoD3MLRwfeqnA 密码:0kim

二、《python深度学习》的代码翻译版

github地址https://github.com/fengdu78/machine_learning_beginner/tree/master/deep-learning-with-python-notebooks

python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。

作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。但是有一个小小的遗憾:代码的解释和注释是全英文的,即使英文水平较好的朋友看起来也很吃力。

本站认为,这本书和代码是初学者入门深度学习及Keras最好的工具。

本站对全部代码做了中文解释和注释,并下载了代码所需要的一些数据集(尤其是“猫狗大战”数据集),并对其中一些图像进行了本地化,代码全部测试通过。(请按照文件顺序运行,代码前后有部分关联)。

以下代码包含了全书80%左右的知识点

代码目录:

  • 2.1: A first look at a neural network( 初识神经网络)

  • 3.5: Classifying movie reviews(电影评论分类:二分类问题)

  • 3.6: Classifying newswires(新闻分类:多分类问题 )

  • 3.7: Predicting house prices(预测房价:回归问题)

  • 4.4: Underfitting and overfitting( 过拟合与欠拟合)

  • 5.1: Introduction to convnets(卷积神经网络简介)

  • 5.2: Using convnets with small datasets(在小型数据集上从头开始训练一个卷积

  • 5.3: Using a pre-trained convnet(使用预训练的卷积神经网络)

  • 5.4: Visualizing what convnets learn(卷积神经网络的可视化)

  • 6.1: One-hot encoding of words or characters(单词和字符的 one-hot 编码)

  • 6.1: Using word embeddings(使用词嵌入)

  • 6.2: Understanding RNNs(理解循环神经网络)

  • 6.3: Advanced usage of RNNs(循环神经网络的高级用法)

  • 6.4: Sequence processing with convnets(用卷积神经网络处理序列)

  • 8.1: Text generation with LSTM(使用 LSTM 生成文本)

  • 8.2: Deep dream(DeepDream)

  • 8.3: Neural style transfer( 神经风格迁移)

  • 8.4: Generating images with VAEs(用变分自编码器生成图像)

  • 8.5: Introduction to GANs(生成式对抗网络简介)

作者的github: https://github.com/fchollet/deep-learning-with-python-notebooks

《python深度学习》的购买地址: https://item.jd.com/12409581.html

data目录的数据下载: https://pan.baidu.com/s/1Ni8apGSR56Dyf7nOKBVPNQ 提取码:sdgi 本书运行代码要下载大量的数据,如kaggle“猫狗大战”等数据,我们已经下载了所有本书需要的数据放在上面那个下载链接了。

三、 强烈推荐的TensorFlow、Pytorch和Keras的样例资源

**整合过的github地址:**https://github.com/fengdu78/machine_learning_beginner/tree/master/deep-learning-with-tensorflow-keras-pytorch

TensorFlowKerasPytorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相对内容较多,初学者往往无从下手。本人从github里搜到三个非常不错的学习资源,并对资源目录进行翻译,强烈建议初学者下载学习,这些资源包含了大量的代码示例(含数据集),个人认为,只要把以上资源运行一次,不懂的地方查官方文档,很快就能理解和运用这三大框架。

1、TensorFlow

资源地址:

https://github.com/aymericdamien/TensorFlow-Examples

资源介绍:

本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。

它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, ......)。

最后更新(07/25/2018):添加新示例(GBDT,Word2Vec)和 TF1.9兼容性! (TF v1.9 +推荐)。

配置环境:

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上训练卷积神经网络。

数据集

###2、Keras

资源地址:

https://github.com/erhwenkuo/deep-learning-with-keras-notebooks

资源介绍:

这个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.图象数据集/工具介绍

  • 0.0: COCO API解说与简单示例
  • 0.1:土炮自制扑克牌图象数据集
  • 0.2:使用Pillow来进行图像处理

1.Keras API示例

  • 1.0:使用图像增强来进行深度学习
  • 1.1:如何使用Keras函数式API进行深度学习
  • 1.2:从零开始构建VGG网络来学习Keras
  • 1.3:使用预训练的模型来分类照片中的物体
  • 1.4:使用图像增强来训练小数据集
  • 1.5:使用预先训练的卷积网络模型
  • 1.6:卷积网络模型学习到什么的可视化
  • 1.7:构建自动编码器(Autoencoder)
  • 1.8:序列到序列(Seq-to-Seq)学习介绍
  • 1.9: One-hot编码工具程序介绍
  • 1.10:循环神经网络(RNN)介绍
  • 1.11: LSTM的返回序列和返回状态之间的区别
  • 1.12:用LSTM来学习英文字母表顺序

2.图像分类(Image Classification)

  • 2.0: Julia(Chars74K)字母图像分类
  • 2.1:交通标志图像分类
  • 2.2:辛普森卡通图像角色分类
  • 2.3:时尚服饰图像分类
  • 2.4:人脸关键点辨识
  • 2.5: Captcha验证码分类
  • 2.6: Mnist手写图像分类(MLP)
  • 2.7: Mnist手写图像分类(CNN)

3.目标检测(Object Recognition)

  • 3.0: YOLO目标检测算法概念与介绍
  • 3.1: YOLOv2目标检测示例
  • 3.2:浣熊(Racoon)检测-YOLOv2模型训练与调整
  • 3.3:浣熊(Racoon)检测-YOLOv2模型的使用
  • 3.4:袋鼠(Kangaroo)检测-YOLOv2模型训练与调整
  • 3.5:双手(Hands)检测-YOLOv2模型训练与调整
  • 3.6:辛普森卡通图象角色(Simpson)检测-YOLOv2模型训练与调整
  • 3.7: MS COCO图象检测-YOLOv2模型训练与调整

4.物体分割(Object Segmentation)

5.关键点检测(Keypoint Detection)

6.图象标题(Image Caption)

7.人脸检测识别(Face Detection/Recognition)

  • 7.0:人脸检测- OpenCV(Haar特征分类器)
  • 7.1:人脸检测- MTCNN(Multi-task Cascaded Convolutional Networks)
  • 7.2:人脸识别-脸部检测、对齐&裁剪
  • 7.3:人脸识别-人脸部特征提取&人脸分类器
  • 7.4:人脸识别-转换、对齐、裁剪、特征提取与比对
  • 7.5:脸部关键点检测(dlib)
  • 7.6:头部姿态(Head pose)估计(dlib)

8.自然语言处理(Natural Language Processing)

  • 8.0:词嵌入(word embeddings)介绍
  • 8.1:使用结巴(jieba)进行中文分词
  • 8.2: Word2vec词嵌入(word embeddings)的基本概念
  • 8.3:使用结巴(jieba)进行歌词分析
  • 8.4:使用gensim训练中文词向量(word2vec)

3、Pytorch

资源地址:

https://github.com/yunjey/pytorch-tutorial

资源介绍:

这个资源为深度学习研究人员提供了学习PyTorch的教程代码大多数模型都使用少于30行代码实现。 在开始本教程之前,建议先看完Pytorch官方教程。

配置环境:

python 2.7或者3.5以上,pytorch 0.4

资源目录:

1.基础知识

  • PyTorch基础知识
  • 线性回归
  • Logistic回归
  • 前馈神经网络

2.中级

  • 卷积神经网络
  • 深度残差网络
  • 递归神经网络
  • 双向递归神经网络
  • 语言模型(RNN-LM)

3.高级

  • 生成性对抗网络
  • 变分自动编码器
  • 神经风格转移
  • 图像字幕(CNN-RNN)

4.工具

  • PyTorch中的TensorBoard

 总结

4. 60分钟入门深度学习工具-PyTorch

作者:Soumith Chintala

原文翻译自:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

**github地址:**https://github.com/fengdu78/Data-Science-Notes/tree/master/8.deep-learning/PyTorch_beginner

本教程的目标:

  • 在高层次上理解PyTorch的张量(Tensor)库和神经网络
  • 训练一个小型神经网络对图像进行分类
  • 本教程假设您对numpy有基本的了解

注意: 务必确认您已经安装了 torch 和 torchvision 两个包。

目录

  • 1.Pytorch是什么?(1.PyTorch是什么?.ipynb)

  • 2.AUTOGRAD(2.AUTOGRAD.ipynb)

  • 3.神经网络(3.神经网络.ipynb)

  • 4.训练一个分类器(4.训练一个分类器.ipynb)

  • 5.数据并行(5.数据并行.ipynb)

5.PaddlePaddle(飞桨)-入门及资源

github地址:https://github.com/fengdu78/PaddlePaddle-Tutorial (更新中)

PaddlePaddle(飞桨)是一个简单易用、高效灵活、可扩展的深度学习平台。

PaddlePaddle最新版本: Fluid 1.5.0

  1. Paddle官网:https://www.paddlepaddle.org.cn
  2. Paddle使用指南:https://www.paddlepaddle.org.cn/documentation/docs/zh/1.5/user_guides/index_cn.html?from=paddlenav
  3. Paddle的github:https://github.com/PaddlePaddle
  4. 开放模型库:https://github.com/PaddlePaddle/models
  5. 教程:https://github.com/PaddlePaddle/book
  6. PaddleHub:https://github.com/PaddlePaddle/PaddleHub

6.图解word2vec(翻译)

**github地址:**https://github.com/fengdu78/machine_learning_beginner/tree/master/word2vec