• Rocket


    https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA

     
    介绍MixedNode的实现。
     
     
    1. 类定义
     
     
    2. inner/outer
     
    inner side/outer side of the node.
     
    3. inward/outward
     
    Inward/Outward node:
     
    4. resolveStar
     
    抽象方法,实现如下逻辑:确定绑定中的星号(*)所代表的连接的个数。
    根据Star所代表的连接个数,每个绑定在resolveStar之后,可以包含多条连接。
     
    5. mapParamsD/mapParamsU
     
    实现如何把DI映射为DO,把UO映射为UI。
     
    6. iBindings/oBindings
     
    iBindings/oBindings分别定义于InwardNode和OutwardNode中,通过iPush和oPush向其中添加绑定信息:对端节点、绑定类型。
     
    iPush/oPush在bind()方法中调用:
     
    绑定是成对的:
    a. x的内向连接就是y的外向连接;
    b. x侧的BIND_STAR是y侧的BIND_QUERY;
     
    总结一下:
    a. 我的STAR,你的QUERY;
    b. 你的STAR,我的QUERY;
     
     
    7. sinkCard/sourceCard/flexes
     
    sinkCard:当前节点的所有连接中,下游节点为星号(*)的连接的个数;
    sourceCard:当前节点的所有连接中,下游节点为星号(*)的连接的个数;
    flexes:当前节点的所有连接中,连接类型为BIND_FLEX的连接中的对端节点;
     
    8. flexOffset
     
    用于确定多对多的连接,是作为一对多的连接使用,还是作为多对一的连接使用。
     
    如注释所说:
     
    可以重构为如下两个变量以供后续使用:
     
     
    9. oPortMapping/iPortMapping
     
    oPortMapping:输出绑定包含的连接序号区间:[start, end);
    iPortMapping:输入绑定包含的连接序号区间:[start, end)
     
     
     
    10. oStar/iStar
     
    oStar: 输出侧的Star,resolve之后所包含的连接数;
    iStar:输入侧的Star,resolve之后所包含的连接数;
     
    11. oPorts/iPorts
     
     
    输出侧和输入侧所有连接的集合。每个连接包含如下信息:
    a. j: 连接的序号;
    b. n: 对端节点;
    c. p:参数Parameters;
    d. s: sourceInfo;
     
    PS. i为绑定的序号。
     
    12. diParams/doParams
     
    diParams:所有输入连接的DI参数的集合,也就是上游节点对应的doParams(i),即DI定义中的received的意思;
    doParams:所有输出连接DO参数的集合,使用diParams和mapParamsD方法产生,即DO定义中的generated的意思;
     
    doParams依赖于本节点的diParams,diParams依赖于上游节点的doParams...,如此逐级向上,实现Params向下(Downward)传播。
     
    13. uoParams/uiParams
     
    参考diParams/doParams;
     
    14. edgesOut/edgesIn
     
    edgesOut:使用outer和UO参数,获得输出边;
    edgesIn:使用inner和DI参数,获得输入边;
     
    15. bundleOut/bundleIn
     
    输出连接Bundle的集合;
    输入连接Bundle的集合;
     
    16. danglesOut/danglesIn
     
    输入输出悬边的集合。
    所谓悬,是指没有和对端连接到一起;这里的连接指的是Bundle的连接。
    所谓边,指的是连接,而非绑定。所以我侧用的是连接编号i;
     
    其中:
    a. serial是每一个节点唯一的编号;
    b. i是连接的序号;
    c. j是绑定的序号;(每个绑定可以包含多条连接,取决于Star resolve之后的值)
    d. flipped的值代表输入边和输出边,用于确定bundle的方向是否需要反转;
     
     
    17. out/in
     
    如注释:Accessors to the result of negotiation to be used in LazyModuleImp.
     
    18. instantiate/finishInstantiate
     
    实例化,返回所有悬边的集合,输入输出不重要:Used by LazyModules.module.instantiate
     
    19. inputs/outputs
     
    meta-data for printing the node graph
     
  • 相关阅读:
    TensorFlow学习笔记--CIFAR-10 图像识别
    第二章--第二节:注释
    webbrowser
    RichViewEdit
    RichEdit
    TreeView
    RichView
    ListView
    DesktopLoader服务程序
    Delphi实现程序只运行一次并激活已打开的程序
  • 原文地址:https://www.cnblogs.com/wjcdx/p/10473391.html
Copyright © 2020-2023  润新知