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

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

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

4.4 卷积自编码器

主体:

digraph ConvAutoEncoder {
  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 W=256, H=256, C=3]", shape="Mrecord"]
  conv1       [label="ConvBlock1\n[In=3, Out=16]"]
  featmap_e1  [label="[BatchSize,\nW=128, H=128, C=16]", shape="Mrecord"]
  conv2       [label="ConvBlock2\n[In=16, Out=32]"]
  featmap_e2  [label="[BatchSize,\nW=64, H=64, C=32]", shape="Mrecord"]
  conv3       [label="ConvBlock3\n[In=32, Out=32]"]
  featmap_e3  [label="[BatchSize,\nW=32, H=32, C=32]", shape="Mrecord"]
  upconv3     [label="UpConvBlock3\n[In=32, Out=32]"]
  featmap_d2  [label="[BatchSize,\nW=64, H=64, C=32]", shape="Mrecord"]
  upconv2     [label="UpConvBlock2\n[In=32, Out=16]"]
  featmap_d1  [label="[BatchSize,\nW=128, H=128, C=16", shape="Mrecord"]
  upconv1     [label="UpConvBlock1\n[In=16, Out=3]"]
  tanh        [label="Tanh"]
  oup         [label="输出\n[BatchSize,\n W=256, H=256, C=3]", shape="Mrecord"]
  inp -> conv1 -> featmap_e1 -> conv2 -> featmap_e2
        -> conv3 -> featmap_e3 -> upconv3 -> featmap_d2
        -> upconv2 -> featmap_d1 -> upconv1
        -> tanh -> oup 
}

卷积块:

digraph CAEConvBlock {
  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 W=BlockW,\n H=BlockH,\n C=BlockIn]", shape="Mrecord"]
  conv        [label="Conv2D\n[K=3, P=1,\n In=BlockIn,\n Out=BlockOut]"]
  batchnorm   [label="BatchNorm(BlockOut)"]
    relu        [label="Relu"]
    maxpool     [label="MaxPool2D\n[K=2, S=2]"]
  oup         [label="输出\n[BatchSize,\n W=BlockW/2,\n H=BlockH/2,\n C=BlockOut]", shape="Mrecord"]
  inp -> conv -> batchnorm -> relu -> maxpool -> oup 
}

反卷积块:

digraph CAEDeconvBlock {
  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 W=BlockW,\n H=BlockH,\n C=BlockIn]", shape="Mrecord"]
    upsamp      [label="UpSample x2"]
  conv        [label="Conv2D\n[K=3, P=1,\n In=BlockIn,\n Out=BlockOut]"]
  batchnorm   [label="BatchNorm(BlockOut)"]
    relu        [label="Relu"]
  oup         [label="输出\n[BatchSize,\n W=BlockW*2,\n H=BlockH*2,\n C=BlockOut]", shape="Mrecord"]
  inp -> upsamp -> conv -> batchnorm -> relu -> oup 
}

五、循环神经网络

5.1 时序 RNN

digraph TimeRNN {
  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 SeqLen, NFeature]", shape="Mrecord"]
    rnn1     [label="RNNCell1\n[NFeature, NHidden]"]
    rnn_rest [label="RNNCell x (NLayers-1)\n[NHidden, NHidden]"]
    hidst    [label="[BatchSize,\n SeqLen, NHidden]", shape="Mrecord"]
  ll       [label="Linear\n[NHidden, NLabels]"]
  oup      [label="输出\n[BatchSize,\n SeqLen, NLabels]", shape="Mrecord"]
  
  inp -> rnn1 -> rnn_rest -> hidst -> ll -> oup
}

5.2 NLP RNN

digraph NLPRNN {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
  
  
  inp      [label="输入(单词ID)\n[BatchSize, SeqLen]", shape="Mrecord"]
  emb      [label="Embedding\n[VocabSize, NHidden]"]
  inp_emb  [label="[BatchSize,\n SeqLen, NHidden]", shape="Mrecord"]
    rnn      [label="RNNCell x NLayers\n[NHidden, NHidden]"]
    hidst    [label="[BatchSize,\n SeqLen, NHidden]", shape="Mrecord"]
  emb_w_t  [label="@ Embedding.w.T\n[NHidden, VocabSize]"]
  oup      [label="输出(单词概率)\n[BatchSize,\n SeqLen, VocabSize]", shape="Mrecord"]
  
  inp -> emb -> inp_emb -> rnn -> hidst -> emb_w_t -> oup
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
• 22
• 23
• 24

5.3 RNN 单元

digraph RNNCell {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    x [label="X[t](输入)\n[BatchSize, NIn]", shape="Mrecord"]
    his [label="H[t-1](历史)\n[BatchSize, NOut]", shape="Mrecord"]
    w_x [label="W(参数)\n[NIn, NOut]", shape="Mrecord"]
    w_h [label="U(参数)\n[NOut, NOut]", shape="Mrecord"]
    b   [label="b(参数)\n[1, NOut]", shape="Mrecord"]
    σ   [label="Sigmoid"]
    matmul1 [label="@"]
    matmul2 [label="@"]
    plus  [label="+"]
    h   [label="H[t](输出)\n[BatchSize, NOut]", shape="Mrecord"]
    x -> matmul1
    w_x -> matmul1
    his -> matmul2
    w_h -> matmul2
    matmul1 -> plus
    matmul2 -> plus
    b -> plus
    plus -> σ
    σ -> h
}

5.4 LSTM 单元

digraph GRUCell {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    x [label="X[t](输入)\n[BatchSize, NIn]", shape="Mrecord"]
    his_h [label="H[t-1](短期历史)\n[BatchSize, NOut]", shape="Mrecord"]
    his_c [label="C[t-1](长期历史)\n[BatchSize, NOut]", shape="Mrecord"]
    
    calc_f [label="σ(X[t] @ W[f]\n + H[t-1] @ U[f]\n + b[f])"]
    calc_i [label="σ(X[t] @ W[i]\n + H[t-1] @ U[i]\n + b[i])"]
    calc_c_cand [label="tanh(X[t] @ W[c]\n + H[t-1] @ U[c]\n + b[c])"]
    calc_o [label="σ(X[t] @ W[o]\n + H[t-1] @ U[o]\n + b[o])"]
    
    f   [label="F[t](遗忘门)\n[BatchSize, NOut]", shape="Mrecord"]
    i   [label="I[t](记忆门)\n[BatchSize, NOut]", shape="Mrecord"]
    c_cand   [label="CCand[t](长期候补)\n[BatchSize, NOut]", shape="Mrecord"]
    o   [label="O[t](输出门)\n[BatchSize, NOut]", shape="Mrecord"]
    calc_c [label="F[t] * C[t-1]\n + I[t] * CCand[t]"]
    calc_h [label="C[t] * tanh(O[t])"]
    h [label="H[t](输出&短期记忆)\n[BatchSize, NOut]", shape="Mrecord"]
    c [label="C[t](长期记忆)\n[BatchSize, NOut]", shape="Mrecord"]
    x -> calc_f
    x -> calc_i
    x -> calc_c_cand
    x -> calc_o
    his_h -> calc_f -> f
    his_h -> calc_i -> i
    his_h -> calc_c_cand -> c_cand
    his_h -> calc_o -> o
    f -> calc_c
    i -> calc_c
    c_cand -> calc_c
    calc_c -> c
    c -> calc_h
    o -> calc_h
    calc_h -> h
}

5.5 GRU 单元

digraph LSTMCell {
  rankdir=BT
    node [
    style=filled, 
    color=Black
    fontcolor=White, 
    fillcolor="#30638e", 
    fontname="SimHei",
    fontsize=32,
    width=5, height=2,
    shape="box",
  ]
    x [label="X[t](输入)\n[BatchSize, NIn]", shape="Mrecord"]
    his_h [label="H[t-1](历史)\n[BatchSize, NOut]", shape="Mrecord"]
    
    calc_z [label="σ(X[t] @ W[z]\n + H[t-1] @ U[x]\n + b[z])"]
    calc_r [label="σ(X[t] @ W[r]\n + H[t-1] @ U[r]\n + b[r])"]
    calc_h_cand [label="tanh(X[t] @ W[h]\n + (H[t-1] * R[t]) @ U[h]\n + b[h])"]
    
    z   [label="Z[t](更新门)\n[BatchSize, NOut]", shape="Mrecord"]
    r   [label="R[t](复位门)\n[BatchSize, NOut]", shape="Mrecord"]
    h_cand   [label="HCand[t](候补)\n[BatchSize, NOut]", shape="Mrecord"]
    calc_h [label="(1 - Z[t]) * H[t-1]\n + Z[t] * HCand[t]"]
    h [label="H[t](输出)\n[BatchSize, NOut]", shape="Mrecord"]
    x -> calc_z
    x -> calc_r
    x -> calc_h_cand
    his_h -> calc_z -> z
    his_h -> calc_r -> r
    his_h -> calc_h_cand
    r -> calc_h_cand -> h_cand
    z -> calc_h
    h_cand -> calc_h
    calc_h -> h
}
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
• 22
• 23
• 24
• 25
• 26
• 27
• 28
• 29
• 30
• 31
• 32
• 33
• 34
• 35
• 36
• 37
• 38
• 39
• 40
• 41


相关文章
|
23天前
|
数据采集 缓存 前端开发
如何开发门店业绩上报管理系统中的商品数据板块?(附架构图+流程图+代码参考)
本文深入讲解门店业绩上报系统中商品数据板块的设计与实现,涵盖商品类别、信息、档案等内容,详细阐述技术架构、业务流程、数据库设计及开发技巧,并提供完整代码示例,助力企业构建稳定、可扩展的商品数据系统。
|
26天前
|
JSON 前端开发 JavaScript
如何开发一套EHS健康安全环境管理系统中的健康管理板块?(附架构图+流程图+代码参考)
本文深入探讨了企业EHS(环境、健康与安全)系统中的核心模块——健康管理。文章指出,企业健康管理不仅是合规要求,更是提升生产效率、降低事故率和用工成本的关键。通过构建系统化、数据化的健康管理模块,企业可以实现体检、档案、劳保用品管理、异常预警和统计看板的闭环管理。特别适用于中大型企业,文章提供了从系统架构设计、数据库建模、后端与前端实现到部署运维的完整解决方案,并附有可落地的代码示例和技术选型建议。此外,还涵盖了开发技巧、权限控制、数据隐私、接口设计等工程化实践,以及系统扩展和第三方集成的思路,为企业打造高效、合规、可持续优化的EHS健康管理体系提供了全面指导。
|
27天前
|
存储 消息中间件 数据库
如何开发人事及OA管理系统的其他SSC板块?(附架构图+流程图+代码参考)
本文介绍了人事及OA管理系统中“其他SSC板块”的开发与实现,涵盖公告发文、公司资质文件管理、名片印制申请、用印申请、开具证明申请等功能模块。内容包括各模块的功能需求、业务流程、开发技巧及代码参考,帮助企业提升行政管理效率,优化信息流通,增强信息安全。适合企业管理人员及系统开发人员阅读参考。
|
27天前
|
存储 安全 前端开发
如何开发一套EHS 健康安全环境管理系统?(附架构图+流程图+代码参考)
本文介绍如何开发一套完整的EHS(健康、安全和环境)管理系统,涵盖系统核心模块、技术架构、数据库设计、前后端开发示例及上线建议,帮助企业提升安全管理效率与合规性。
|
23天前
|
缓存 前端开发 BI
如何开发门店业绩上报管理系统中的门店数据板块?(附架构图+流程图+代码参考)
门店业绩上报管理是将门店营业、动销、人效等数据按标准化流程上报至企业中台或BI系统,用于考核、分析和决策。其核心在于构建“数据底座”,涵盖门店信息管理、数据采集、校验、汇总与对接。实现时需解决数据脏、上报慢、分析无据等问题。本文详解了实现路径,包括系统架构、数据模型、业务流程、开发要点、三大代码块(数据库、后端、前端)及FAQ,助你构建高效门店数据管理体系。
|
24天前
|
JSON 安全 前端开发
如何开发一套EHS健康安全环境管理系统中的危废品管理板块?(附架构图+流程图+代码参考)
危废管理是EHS系统的重要组成部分,涉及企业危险废物的全生命周期管控。若管理不当,可能导致监管处罚、环境安全风险及成本失控。一个高效的危废管理系统应实现入库→存储→出库→处置→档案追溯→看板治理的闭环流程,不仅确保合规,还能降本增效,并在事故发生时快速响应与举证。系统需涵盖危废目录、出入库单、库存管理、处置记录、合规审批、数据看板等核心功能,结合技术架构与数据库设计,支持前后端开发与移动端应用,最终实现可视化、可追溯、自动化管理。
|
26天前
|
SQL 安全 前端开发
如何开发一套EHS健康安全环境管理系统中的绩效管理板块?(附架构图+流程图+代码参考)
本文探讨了如何将EHS(环境、健康与安全)工作转化为可量化、可持续改进的绩效管理体系。许多企业将EHS视为被动合规任务,但通过绩效管理,可将其升级为驱动企业长期价值的工具。文章详细介绍了EHS绩效管理的核心模块、系统架构设计、数据模型、评分算法、前端展示、开发技巧及落地建议,涵盖了从业务流程设计到技术实现的完整路径。同时,还提供了业务指标定义、规则引擎配置、数据采集与分析、可视化看板展示等内容,并结合示例代码与架构图,帮助开发者与管理者理解如何构建一个闭环的EHS绩效管理系统。
|
26天前
|
传感器 安全 前端开发
如何开发一套EHS健康安全环境管理系统中的风险管理板块?(附架构图+流程图+代码参考)
本文详解企业EHS(健康·安全·环境)系统中的风险管控板块,强调其核心在于构建“识别—评估—巡检—治理—验证”的闭环流程,将风险数据可视化并转化为可落地的行动指引。内容涵盖风险管控的意义、功能边界、系统架构、LEC评估方法、巡检流程、看板设计、开发技巧、落地建议、实现效果及代码参考,帮助技术团队和EHS负责人快速掌握系统搭建要点,提升企业安全管理水平。
|
27天前
|
安全 BI OLAP
如何开发一套EHS健康安全环境管理系统中的培训管理板块?(附架构图+流程图+代码参考)
EHS培训管理需系统化,涵盖课程计划、签到考核、证书发放及复训提醒,实现全流程可追溯,确保合规并降低风险。
|
28天前
|
JSON 前端开发 NoSQL
如何开发OA管理系统的日报、周报管理板块?(附架构图+流程图+代码参考)
本文详解如何将日报/周报模块深度集成至人事OA系统,涵盖需求分析、系统架构、数据模型、业务流程、开发技巧及运维部署等全流程方案。重点阐述结构化数据采集、自动化提醒、审批闭环设计等核心功能,并提供关键代码示例,助力企业高效落地日报/周报系统,提升组织协同效率。

热门文章

最新文章