重磅!深度学习网络模型大全来了(基于TensorFlow和PyTorch的开源复现)

前戏

端午节快乐!今天 CVer 公众号就不更新重磅的最新论文了,大家还是放松一下,开心过节吧!(透露一下,CVer这边攒了好几篇目标检测、分割等论文,后面会分享给大家)

Amusi 在几个小时前,逛github的时候发现了一个名为:deeplearning-models 的项目。一开始不以为然,后来又几个小时后喵了一眼,居然这么多star,然后我就看了一下内容,真的很赞!迅速Mark,分享给大家~

https://github.com/rasbt/deeplearning-models

在介绍 deeplearning-models 项目之前,很必要介绍一下作者,因为真的太强了。

很难想象一个MLer:Sebastian Raschka,在github上居然有 9.7k Followers,这是 Amusi见到AI 领域 Followers第二的巨佬。

PS:如果本文点击 "在看" 的人数超过 500,那么 Amusi 会单独做一期 AI 领域 Followers第一的巨佬介绍~

Sebastian Raschka

Sebastian Raschka 是威斯康星大学麦迪逊分校的统计学助理教授,专注于深度学习和机器学习研究。

另外,据Amusi了解到,Sebastian Raschka 还是 2015年出版的《Python Machine Learning》原作者。

deeplearning-models

不到12小时,近1000 star,来看看这个项目到底有啥干货

https://github.com/rasbt/deeplearning-models

在Jupyter Notebooks中,基于TensorFlow和PyTorch实现的各种深度学习架构,模型和技巧的集合。

很明显,该项目中的所有网络模型都是用TensorFlow和PyTorch复现的,有的甚至给出了double 复现。

主要内容涵盖:

  • 传统机器学习
  • 多层感知机
  • 卷积神经网络(CNNs)
  • 度量学习
  • Autoencoders
  • GANs
  • RNNs
  • 训练技巧
  • PyTorch
  • TensorFlow

PS:巨佬的知识面是真的广啊~

传统机器学习

传统机器学习中的 Perception、Logistic Regression和Softmax Regression都提供了TF、PyTorch版本的代码。

打开 Perceptron的PyTorch代码,可见是基于PyTorch 1.0.0的版本,代码还添加详细的注释,作者真的很细心。

卷积神经网络

CNN 中介绍了基础的 CNN 原型网络、AlexNet、VGG、ResNet 还有很经典的Network in Network。

打开基于PyTorch的 ResNet 代码,里面居然有1193行信息(不全是代码),涵盖论文信息、数据集、论文重点内容简介、代码和注释。

简单粗暴看一下 ConvNet的代码:

class ConvNet(torch.nn.Module):

    def __init__(self, num_classes):
        super(ConvNet, self).__init__()
        
        #########################
        ### 1st residual block
        #########################
        # 28x28x1 => 28x28x4
        self.conv_1 = torch.nn.Conv2d(in_channels=1,
                                      out_channels=4,
                                      kernel_size=(1, 1),
                                      stride=(1, 1),
                                      padding=0)
        self.conv_1_bn = torch.nn.BatchNorm2d(4)
                                    
        # 28x28x4 => 28x28x1
        self.conv_2 = torch.nn.Conv2d(in_channels=4,
                                      out_channels=1,
                                      kernel_size=(3, 3),
                                      stride=(1, 1),
                                      padding=1)   
        self.conv_2_bn = torch.nn.BatchNorm2d(1)
        
        
        #########################
        ### 2nd residual block
        #########################
        # 28x28x1 => 28x28x4
        self.conv_3 = torch.nn.Conv2d(in_channels=1,
                                      out_channels=4,
                                      kernel_size=(1, 1),
                                      stride=(1, 1),
                                      padding=0)
        self.conv_3_bn = torch.nn.BatchNorm2d(4)
                                    
        # 28x28x4 => 28x28x1
        self.conv_4 = torch.nn.Conv2d(in_channels=4,
                                      out_channels=1,
                                      kernel_size=(3, 3),
                                      stride=(1, 1),
                                      padding=1)   
        self.conv_4_bn = torch.nn.BatchNorm2d(1)

        #########################
        ### Fully connected
        #########################        
        self.linear_1 = torch.nn.Linear(28*28*1, num_classes)

Autoencoders

自编码器(Autoencoder)内容也很多,具体如下:

GANS/RNNs/Tips

现在因为才上传不到12个小时,所以有些方向的内容不是很全,但基础内容都已经涵盖,下面看一下GANs、RNNs等内容

PyTorch

涵盖 PyTorch 相关的训练技巧、预处理、数据集加载工具、并行计算等内容

TensorFlow

涵盖 TensorFlow 数据集加载工具、训练和预处理技巧等内容

侃侃

不能说 deeplearning-models内容有多深度,但广度是有的,而且能面向大众的始终是简单易懂的。该项目的意义我觉得有三点:

1. 很适合刚入门的学生

2. 适合只专注一个领域,且想学习其它方向的学生

3. 锻炼TensorFlow和PyTorch的Coding能力和技巧

如果本文的点 "在看" 的人数超过 500,那么 Amusi 会单独做一期 AI 领域 Followers第一的巨佬介绍

https://github.com/rasbt/deeplearning-models

原文发布于微信公众号 - CVer(CVerNews)

原文发表时间:2019-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券