【开源分享】深度学习网络模型大全(基于TensorFlow和PyTorch的开源复现)

github上有一个名为:deeplearning-models 的项目。居然这么多star,然后我就看了一下内容,真的很赞!迅速Mark,分享给大家~
在这里插入图片描述
在介绍 deeplearning-models 项目之前,很必要介绍一下作者,因为真的太强了。
很难想象一个MLer:Sebastian Raschka,在github上居然有 9.7k Followers,这是 AI 领域 Followers第二的巨佬。
在这里插入图片描述

Sebastian Raschka

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

另外,据了解,Sebastian Raschka 还是 2015年出版的《Python Machine Learning》原作者。
在这里插入图片描述

deeplearning-models

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

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

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

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

传统机器学习

传统机器学习中的 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能力和技巧

转载于:https://mp.weixin.qq.com/s/kHG8sJjolycMQx-Xjt1fvA

猜你喜欢

转载自blog.csdn.net/weixin_41990278/article/details/91296846