经典神经网络架构参考 v1.0(3)

简介: 经典神经网络架构参考 v1.0

经典神经网络架构参考 v1.0(2)https://developer.aliyun.com/article/1489284

下卷积块:

!

digraph ResNet18DownConvBlock {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    
    inp [label="输入\n[BatchSize,\nW=BlockW, \nH=BlockH, C=BlockIn]", shape="Mrecord"]
    conv1 [label="Conv2D#1\n[K=3, S=2, P=1,\n In=BlockIn,\n Out=BlockOut]"]
    relu1 [label="Relu"]
    conv2 [label="Conv2D#2\n[K=3, P=1,\n In=BlockOut,\n Out=BlockOut]"]
    downconv [label="Conv2D#0\n[K=1, S=2,\n In=BlockIn,\n Out=BlockOut]"]
    add   [label="+"]
    relu2 [label="Relu"]
    inp -> conv1 -> relu1 -> conv2 -> add -> relu2 -> oup
    inp -> downconv -> add
}

3.5 DenseNet

主体:

digraph DenseNet {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=7, height=2,
    shape="box",
  ]
    inp [label="输入\n[BatchSize, W=224,\n H=224, C=3]"]
    conv0 [label="Conv2D#0\n[K=7, S=2, P=3,\nIn=3, Out=64]"]
    bn0 [label="BatchNorm2D(64)"]
    relu0 [label="Relu"]
    maxpool0 [label="MaxPool2D#0\n[K=3, S=2, P=1]"]
    featmap0 [label="[BatchSize,\nW=56, H=56, C=64"]
    dense1 [label="DenseBlock1\n[NLayers=6, BNSize=4,\n GrowthRate=32]"]
    featmap11 [label="[BatchSize, W=56, H=56,\n C=64+6*32=256]"]
    trans1 [label="Trasition1\n[CompRate=0.5]"]
    featmap12 [label="[BatchSize, W=28, H=28, C=128]"]
    dense2 [label="DenseBlock2\n[NLayers=12, BNSize=4,\n GrowthRate=32]"]
    featmap21 [label="[BatchSize, W=28, H=28,\n C=128+12*32=512]"]
    trans2 [label="Trasition2\n[CompRate=0.5]"]
    featmap22 [label="[BatchSize, W=14, H=14, C=256]"]
    dense3 [label="DenseBlock3\n[NLayers=24, BNSize=4,\n GrowthRate=32]"]
    featmap31 [label="[BatchSize, W=14, H=14,\n C=256+24*32=1024]"]
    trans3 [label="Trasition3\n[CompRate=0.5]"]
    featmap32 [label="[BatchSize, W=7, H=7, C=512]"]
    dense4 [label="DenseBlock4\n[NLayers=16, BNSize=4,\n GrowthRate=32]"]
    featmap4 [label="[BatchSize, W=7, H=7,\n C=512+16*32=1024]"]
    avgpool [label="AvgPool2D\n[K=7, S=7]"]
    featmap5 [label="[BatchSize, W=1, H=1, C=1024]"]
    reshape [label="reshape([1024])"]
    linear [label="Linear\n[1024, 1000"]
    softmax [label="Softmax"]
    oup [label="输出\n[BatchSize, 1000]"]
    inp -> conv0 -> bn0 -> relu0 -> maxpool0 ->  featmap0 ->
        dense1 -> featmap11 -> trans1 -> featmap12 ->
        dense2 -> featmap21 -> trans2 -> featmap22 ->
        dense3 -> featmap31 -> trans3 -> featmap32 ->
        dense4 -> featmap4 -> avgpool -> featmap5 ->
        reshape -> linear -> softmax -> oup
}

密集块:

digraph DenseBlock {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=7, height=2,
    shape="box",
  ]
    inp [label="输入\n[BatchSize, W=BlockW,\n H=BlockH, C=LayerIn]"]
  DenseLayers [label="DenseLayer x NLayers\n[In=BlockIN+#Layer*GrowthRate]"]
  oup [label="输出\n[BatchSize,\n W=BlockW, H=BlockH,\n C=LayerIn+NumLayer*GrowthRate ]"]
  inp -> DenseLayers -> oup
}

密集层:

digraph DenseLayer {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    inp [label="输入\n[BatchSize, W=BlockW,\n H=BlockH, C=LayerIn]"]
    bn1 [label="BatchNorm1(LayerIn)"]
    relu1  [label="Relu"]
    conv1 [label="Conv2D#1\n[K=1, In=LayerIn,\n Out=BNSize*GrowthRate]"]
    bn2 [label="BatchNorm2\n(BNSize*GrowthRate)"]
    relu2  [label="Relu"]
    conv2 [label="Conv2D#1\n[K=3, P=1,\n In=BNSize*GrowthRate,\n Out=GrowthRate]"]
    cat [label="cat(axis=1)"]
    oup [label="输出\n[BatchSize,\n W=BlockW, H=BlockH,\n C=LayerIn+GrowthRate]"]
    inp -> bn1 -> relu1 -> conv1 -> bn2 -> relu2 -> conv2 -> cat -> oup
    inp -> cat
}

过渡块:

digraph TransitionLayer {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    inp [label="输入\n[BatchSize, W=LayerW,\n H=LayerH, C=LayerIn]"]
    bn [label="BatchNorm1(LayerIn)"]
    relu  [label="Relu"]
    conv [label="Conv2D\n[K=1, In=LayerIn,\n Out=LayerIn*CompRate]"]
    maxpool [label="MaxPool2D\n[K=2, S=2]"]
    oup [label="输出\n[BatchSize,\n W=BlockW/2,\n H=BlockH/2,\n C=LayerIn*CompRate]"]
    inp -> bn -> relu -> conv -> maxpool -> oup
}

四、自编码器

4.1 栈式自编码器

digraph StackAutoEncoder {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
  
  
  inp     [label="输入\n[BatchSize,\n NFeature(768)]", shape="Mrecord"]
  ll1     [label="Linear\n[NFeature(768),\n NHidden1(512)]"]
    σ1      [label="Sigmoid"]
    ll2     [label="Linear\n[NHidden1(512),\n NHidden2(256)]"]
    σ2      [label="Sigmoid"]
    ll3     [label="Linear\n[NHidden2(256),\n NHidden1(512)]"]
    σ3      [label="Sigmoid"]
    ll4     [label="Linear\n[NHidden1(512),\n NFeature(768)]"]
  oup     [label="输出\n[BatchSise,\n NFeature(768)]", shape="Mrecord"]
  
  inp -> ll1 -> σ1 -> ll2 -> σ2
        -> ll3 -> σ3 -> ll4 -> oup
}

4.2 去噪自编码器

digraph DenoiseAutoEncoder {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
  
  
  inp       [label="输入\n[BatchSize,\n NFeature(768)]", shape="Mrecord"]
  noise     [label="AddNoise\n+ 0.5 * randn(\nBatchSize,\n NFeature(768))"]
  ll1       [label="Linear\n[NFeature(768),\n NHidden1(512)]"]
    σ1        [label="Sigmoid"]
    ll2       [label="Linear\n[NHidden1(512),\n NHidden2(256)]"]
    σ2        [label="Sigmoid"]
    ll3       [label="Linear\n[NHidden2(256),\n NHidden1(512)]"]
    σ3        [label="Sigmoid"]
    ll4       [label="Linear\n[NHidden1(512),\n NFeature(768)]"]
  oup       [label="输出\n[BatchSize,\n NFeature(768)]", shape="Mrecord"]
  
  inp -> noise ->  ll1 -> σ1 -> ll2 -> σ2
        -> ll3 -> σ3 -> ll4 -> oup
}

4.3 变分自编码器

digraph VariationAutoEncoder {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
  
  
  inp           [label="输入\n[BatchSize,\n NFeature(768)]", shape="Mrecord"]
  ll1           [label="Linear\n[NFeature(768),\n NHidden1(512)]"]
    σ1            [label="Sigmoid"]
    ll2           [label="Linear\n[NHidden1(512),\n NHidden2(256)]"]
    σ2            [label="Sigmoid"]
  ll3_mean      [label="Linear\n[NHidden2(256),\n NHidden3(128)]"]
  ll3_log_var   [label="Linear\n[NHidden2(256),\n NHidden3(128)]"]
  z_mean        [label="μ\n[BatchSize,\n NHidden3(128)]", shape="Mrecord"]
  z_log_var     [label="logσ²\n[BatchSize,\n NHidden3(128)]", shape="Mrecord"]
  eps           [label="ε\nrandn(BatchSize,\n NHidden3(128))", shape="Mrecord"]
  sample        [label="μ + exp(logσ² / 2) * ε", width=7]
  z             [label="z\n[BatchSize,\n NHidden3(128)]", shape="Mrecord"]
    ll4           [label="Linear\n[NHidden3(128),\n NHidden2(256)]"]
    σ4            [label="Sigmoid"]
    ll5           [label="Linear\n[NHidden2(256),\n NHidden1(512)]"]
    σ5            [label="Sigmoid"]
    ll6           [label="Linear\n[NHidden1(512),\n NFeature(768)]"]
  oup           [label="输出\n[BatchSize,\n NFeature(768)]", shape="Mrecord"]
  
  inp -> ll1 -> σ1 -> ll2 -> σ2
    σ2 -> ll3_mean -> z_mean -> sample
  σ2 -> ll3_log_var -> z_log_var -> sample
  eps -> sample -> z -> ll4 -> σ4 -> ll5 -> σ5 -> ll6 -> oup
}

经典神经网络架构参考 v1.0(4)https://developer.aliyun.com/article/1489286

相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch 中的动态计算图:实现灵活的神经网络架构
【8月更文第27天】PyTorch 是一款流行的深度学习框架,它以其灵活性和易用性而闻名。与 TensorFlow 等其他框架相比,PyTorch 最大的特点之一是支持动态计算图。这意味着开发者可以在运行时定义网络结构,这为构建复杂的模型提供了极大的便利。本文将深入探讨 PyTorch 中动态计算图的工作原理,并通过一些示例代码展示如何利用这一特性来构建灵活的神经网络架构。
69 1
|
18天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
3天前
|
边缘计算 人工智能 安全
5G 核心网络 (5GC) 与 4G 核心网:架构变革,赋能未来
5G 核心网络 (5GC) 与 4G 核心网:架构变革,赋能未来
17 6
|
9天前
|
存储 安全 网络安全
网络安全与信息安全:构建安全防线的多维策略在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的关键要素。本文旨在探讨网络安全漏洞的本质、加密技术的重要性以及提升公众安全意识的必要性,以期为构建更加坚固的网络环境提供参考。
本文聚焦于网络安全领域的核心议题,包括网络安全漏洞的现状与应对、加密技术的发展与应用,以及安全意识的培养与实践。通过分析真实案例,揭示网络安全威胁的多样性与复杂性,强调综合防护策略的重要性。不同于传统摘要,本文将直接深入核心内容,以简洁明了的方式概述各章节要点,旨在迅速吸引读者兴趣,引导其进一步探索全文。
|
13天前
|
存储 监控 物联网
蜂窝网络基础架构详解:从基站到核心网
蜂窝网络基础架构详解:从基站到核心网
44 9
|
19天前
|
编解码 人工智能 文件存储
卷积神经网络架构:EfficientNet结构的特点
EfficientNet是一种高效的卷积神经网络架构,它通过系统化的方法来提升模型的性能和效率。
25 1
|
4天前
|
传感器 监控 物联网
无线传感器网络的基本架构及其广泛应用
无线传感器网络的基本架构及其广泛应用
20 0
|
14天前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
41 0
|
28天前
|
网络协议 安全 网络性能优化
OSI 模型详解:网络通信的七层架构
【8月更文挑战第31天】
155 0
|
1月前
|
Java Android开发 Kotlin
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
25 0