/deep_learning_gluon

暂时停止更新,去做些巩固基础的工作

Primary LanguageJupyter Notebook

基本深度学习模型

基于mxnet和gluon实现深度学习的一些最基本模型

代码主要来自李沐博士与Aston博士开设的动手学深度学习课程以及mxnet官方tutorial

由衷感谢沐神和mxnet小伙伴们的无私奉献!

notebook版(旧版未修正)

以下notebook仅需要按照沐神课程逐步安装gpu版的mxnet及其依赖便可直接运行

  1. from_strat:从零实现一个简单的图像分类器

    • Gradient:梯度下降法(Gradient descend)

      用numpy实现,利用梯度下降法求解高维线性分布的数据集的权重偏置

    • Gradient_Batch:随机梯度下降法(Stochastic gradient descend)

    • KNN:k=1最近邻分类cifar10数据集

    • MLP:多层感知机

      用numpy以及autograd自动求导实现cifar10数据集的分类

    • LeNet:用numpy及autograd实现LeNet分类cifar10数据集

  2. cnn_cifar10

    通过gluon逐步构建复杂的卷积神经网络实现对cifar10的高精度分类(单模型95以上),详细参数以及精度对比见文件夹内README.md

    代码参考了Wei Li通过keras的实现BIGBALLON/cifar-10-cnn

    cifar10数据集在官网自行下载解压后将load_cifar函数的route参数改为存放解压文件的绝对路径即可,下载地址:CIFAR-10 python version

    • mlp:多层感知机

    • lenet:调整了结构的lenet

    • lenet(data augmentation):标准数据增强后的lenet

    • resnet50:前置batch normalization和relu的resnet50

    • resnet50(data augmentation):加上标准数据集增强的resnet50

    • wide resnet(16*8):wrn实现高精度分类

    • kaggle(cifar10):用wrn16*8模型参加kaggle cifar10比赛

      单模型精度95.96,ensemble后精度96.98。单模型精度即可击败原比赛榜单第一

    • kaggle(house price):房价预测,沐神课程初期的一个小练习

      由于同属于kaggle比赛,且训练很快,可以随手跑一跑,代码为一个简单调参后的demo,精度应在0.117左右,名次约在16%,传统机器学习方法应该可以获得更好的成绩,详细可参考实战Kaggle比赛——使用Gluon预测房价和K折交叉验证

  3. transfer_learning:迁移学习

    • fine tuning:微调预训练模型完成热狗分类

    • neural style:样式迁移

      基于VGG19预训练模型实现图片风格样式迁移

    • kaggle(dog breed identification):kaggle120种狗分类比赛

      基于inception v3和resnet152 v1预训练模型通过迁移学习训练模型分类120种狗,使用原始数据集精度可达0.2673,使用stanford数据集精度可达0.0038,具体细节见文件夹内README.md

  4. gan

    generative adversarial networks / 生成对抗网络初步

    • conv_gan

      使用dcgan(deep convolutional gan)生成人脸

    • condition_gan

      使用conditional gan生成mnist数字

python版

  1. gradient decend基本
  2. batch gradient decend
  3. knn 分类cifar-10
  4. numpy+autograd实现mlp图像分类器
  5. gluon实现mlp图像分类器
  6. lenet
  7. 添加了图像增强的lenet
  8. resnet
  9. resnet 图像增强
  10. fine tuning
  11. neural style
  12. convolutional gan
  13. fcn/ssd/yolo/rnn系(TODO)

相关论文:

  1. Gradient-Based Learning Applied to Document Recognition (Lenet)
  2. Deep Residual Learning for Image Recognition (Resnet)
  3. Identity Mappings in Deep Residual Networks (Resnet_v2)
  4. Wide Residual Networks
  5. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  6. SSD: Single Shot MultiBox Detector
  7. You Only Look Once: Unified, Real-Time Object Detection
  8. Fully Convolutional Networks for Semantic Segmentation
  9. Generative Adversarial Networks
  10. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
  11. Conditional Generative Adversarial Nets
  12. Deep Reinforcement Learning: An Overview
  13. Human-level control through deep reinforcement learning

扩展阅读:

  1. ImageNet Classification with Deep Convolutional Neural Networks (Alexnet)
  2. Going Deeper with Convolutions (Googlenet)
  3. Very Deep Convolutional Networks for Large-Scale Image Recognition (VGG)
  4. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
  5. Rich feature hierarchies for accurate object detection and semantic segmentation (RCNN)
  6. Fast R-CNN
  7. Mask R-CNN
  8. Image-to-Image Translation with Conditional Adversarial Networks