Uncovering the Representation of Spiking Neural Networks Trained with Surrogate Gradient

郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

Published in Transactions on Machine Learning Research (04/2023)

 

Abstract

  脉冲神经网络(SNN)由于其生物合理性和能量效率而被认为是下一代神经网络的候选者。最近,研究人员已经证明,使用替代梯度训练,SNN能够在图像识别任务中实现几乎最先进的性能。然而,存在一些与SNN有关的基本问题,这些问题很少被研究:用替代梯度训练的SNN是否学到与传统人工神经网络(ANN)不同的表征?SNN中的时间维度是否提供了独特的表征能力?在本文中,我们旨在通过使用中心核对齐(Centered Kernel Alignment, CKA)对SNN和ANN之间的表征相似性进行分析来回答这些问题。我们首先分析网络的空间维度,包括宽度和深度。此外,我们对残差连接的分析表明,SNN学习了一种周期性模式,它将SNN中的表征整流为类似ANN的。我们还研究了时间维度对SNN表征的影响,发现更深的层沿着时间维度鼓励更多的动力学。我们还研究了输入数据(如事件流数据和对抗性攻击)的影响。我们的工作揭示了SNN中表征的一系列新发现。我们希望这项工作将启发未来的研究,以充分理解SNN的表征能力。代码发布于https://github.com/Intelligent-Computing-Lab-Yale/SNNCKA

 

1 Introduction

  最近,脉冲神经网络(SNNs)(Tavanei et al., 2019; Roy et al., 2019; Deng et al., 2020; Panda et al., 2020; Christensen et al., 2022)因其受生物学启发的神经元激活和高效的神经形态计算而受到越来越多的关注。SNN使用二值脉冲表征来处理信息,因此避免了在推理过程中进行乘法运算的需要。TrueNorth (Akopyan et al., 2015)和Loihi (Davies et al., 2018)等神经形态硬件证明,与人工神经网络(ANN)相比,SNN可以节省几个数量级的能量。

  尽管SNN可以在推理中带来巨大的能量效率,但由于其脉冲激活函数,训练SNN是出了名的困难。该函数返回zero-but-all梯度(即狄拉克德尔塔函数),因此使基于梯度的优化不可行。为了避免这个问题,已经提出了各种训练技术。例如,脉冲时序依赖可塑性(STDP)(Rao & Sejnowski, 2001)基于发放时间增强或削弱突触权重;初次脉冲时间(Mostafa, 2017)将信息编码为脉冲到达时间,以获得梯度的闭合形式解。然而,这两种方法仅限于小规模的任务和数据集。另一方面,替代梯度技术(Bengio et al., 2013; Bender et al., 2018; Wu et al., 2018; Bellec et al., 2019; Kim et al., 2022b; Li et al., 2022)可以通过在反向传播过程中应用替代函数来实现最佳任务性能。结合替代梯度,SNN可以通过时序反向传播(BPTT)(Neftci et al., 2019)算法进行优化,优于SNN中的其他学习规则。

  尽管人们对使用替代梯度训练追求高性能SNN越来越感兴趣,但对替代梯度训练如何影响SNN表征的了解有限。研究这个基本问题至关重要,因为基于替代梯度的BPTT算法模仿了ANN的学习方式,与STDP等其他学习规则相比,在生物学上不太可信。因此,研究基于替代梯度的SNN是否学到与ANN不同的表征将是一件有趣的事情。了解在SNN中学到的表征也可以促进进一步的研究发展,例如,设计对脉冲友好的架构(Kim et al., 2022a; Na et al., 2022)和探索优化SNN的其他方法(Bellec et al., 2020; Zhang & Li, 2020; Kim & Panda, 2021a)。

  更具体地说,我们问,通过替代梯度BPTT优化的SNN是否学到与ANN不同的表征?神经网络的宽度和深度如何影响SNN和ANN中学到的表征?SNN中额外的时间维度是否会产生独特的中间特征?在神经形态数据集上,SNN如何处理基于事件的数据?在本文中,我们旨在通过使用表征相似性分析工具对ResNet (He et al., 2016a)和VGG系列(Simonyan & Zisserman, 2015)模型进行详细分析来回答这些核心问题。具体而言,我们利用流行的中心核对齐(CKA)(Kornblith et al., 2019)来测量SNN和ANN之间的相似性。图1展示了我们的表征相似性分析框架的总体工作流程。我们的分析涵盖了SNN的空间和时间维度,以及网络架构和输入数据的影响。

  我们的贡献和发现包括:

  • 我们使用中心核对齐来分析SNN和ANN之间的表征相似性,以确定SNN是否产生与ANN不同的特征表征。我们研究了SNN和ANN之间表征相似性的各个方面,包括空间和时间维度、输入数据类型和网络架构。
  • 令人惊讶的是,我们的发现表明,用替代梯度训练的SNN与ANN具有相当相似的表征。我们还发现,残差连接极大地影响了SNN中的表征。
  • 同时,我们发现SNN中的时间维度并没有提供太多独特的表征。我们还发现,浅层对时间维度不敏感,其中每个时间步骤中的表征都收敛在一起。

 

2 Related Work

Spiking Neural Networks (SNNs). SNN因构建低功耗智能而日益受到关注。通常,获得高性能的SNN算法可以分为两类:(1) ANN-SNN转换(Rueckauer et al., 2016; 2017; Han et al., 2020; Sengupta et al., 2019; Han & Roy, 2020)和 (2) 从头开始直接训练SNN (Wu et al., 2018; 2019)。基于转换的方法利用来自ANN的知识,并将ReLU激活转换为脉冲激活机制。这种类型的方法可以在短时间内产生SNN。例如,在Rueckauer等人(2017)中,可以找到百分位数,并将其设置为神经元脉冲的阈值。Deng & Gu (2021)、Li et al. (2021a)将转换误差分解到每一层,然后提出通过校准参数来减少误差。然而,实现近乎无损的转换需要相当多的时间步骤来累积脉冲。从头开始的直接训练使SNN能够以极低的时间步长运行,甚至不到5个(Zheng et al., 2020)。为了实现基于梯度的学习,直接训练利用替代梯度来计算离散脉冲函数的导数。这也有利于在脉冲神经元中选择超参数。最近的工作(Fang et al., 2021; Rathi & Roy, 2020; Kim & Panda, 2021b; Deng et al., 2022)通过梯度下降共同优化参数、发放阈值和泄漏因子。我们的分析主要基于直接训练的SNN,因为转换后的SNN只包含ANN特征,并且可能会对表征比较产生误导。

Representation Similarity Analysis (RSA). RSA (Kriegeskorte et al., 2008)最初并不是专门为分析神经网络而设计的。相反,它用于任何两个计算模型之间的表征比较。之前的工作,如Khaligh Razavi & Kriegeskorte (2014); Yamins et al. (2014)已经使用RSA来寻找视觉皮层特征和卷积神经网络特征之间的相关性。Seminar (2016); Raghu et al. (2017); Morcos et al. (2018); Wang et al. (2018)的作者研究了不同神经网络之间的RSA。然而,最近的工作(Kornblith et al., 2019)认为,即使在同一架构的两个不同初始化之间,上述研究RSA的方法也不能产生高度相似性。他们进一步提出了CKA,它已成为RSA的强大评估工具,并已成功应用于多项研究。例如,Nguyen等人(2020)分析了极深和极宽神经网络中的表征模式,Raghu等人(2021)用CKA研究了卷积神经网络和视觉transformer之间的表征差异。在这项工作中,我们利用这个工具来比较ANN和SNN。

 

3 Preliminary

3.1 ANN and SNN Neurons

 

3.2 Optimize SNN with Surrogate Gradient

 

3.3 Centered Kernel Alignment

  设分别包含在T个时间步骤上具有p1个隐含神经元的SNN的任意层中的表征和具有p2个隐含神经元的ANN的任意层上的表征。这里m是批大小,我们将SNN中所有时间步骤的特征连接在一起。我们打算使用相似性指数s(Xs, Xa)来描述它们的相似程度。我们使用中心核对齐(CKA)(Kornblith et al., 2019)来测量这一点:

这里,是如图1所示的Gram矩阵。每个Gram矩阵的形状为m×m,反映了一对样本之间的相似性。例如,Ki,j表示SNN特征Xs中的第 i 个和第 j 个样本之间的相似性。进一步测量KL之间的相似性,可以测量SNN是否具有与ANN相似的样本间相似矩阵。令为中心矩阵(I为单位矩阵),Gretton等人(2005)提出的Hilbert-Schmidt独立准则(HSIC)可以进行检验统计,以确定两组变量是否独立。HSIC=0表示独立性。CKA进一步归一化HSIC以产生在0和1之间的相似性指数(CKA越高,输入对越相似),其对于各向同性缩放是不变的。在我们的实现中,我们使用HSIC的无偏估计量(Song et al., 2012; Nguyen et al., 2020)来跨小批量计算它。

 

4 Do SNNs Learn Different Representation from ANNs?

  在本节中,我们全面比较了在SNN和ANN中学到的表征。我们的主要研究案例是CIFAR10数据集上的带有恒等映射块的ResNet (He et al., 2016b),这是现代图像识别深度学习的标准架构和数据集。我们的SNN和ANN之间有两个区别。首先,ANN采用批量归一化层(Ioffe & Szegedy, 2015),SNN使用与时间相关的批量归一化层(Zhang et al., 2020),该层在所有时间步骤上对特征进行归一化(即Xs)。其次,ANN使用ReLU激活,而SNN利用LIF脉冲神经元。对于默认的SNN训练,我们使用直接编码,τ=0.5表示泄漏因子,vth=1.0表示发放阈值,T=4表示时间步长,α=1.0表示替代梯度,这是为了在SNN上获得最佳训练性能而调整的。详细的训练设置和代码可以在补充材料中找到。

 

1 我们还提供了第A.1节中VGG系列网络上的RSA和第A.2节中CIFAR100数据集上的RSA。

 

4.1 Scaling up Width or Depth

  我们通过研究模型架构的空间维度如何影响ANN和SNN中的内部表征结构来开始我们的研究。我们首先研究了一个简单的模型:ResNet-20,然后我们要么增加其层数,要么增加其通道数,以分别观察深度和宽度的影响。在最极端的情况下,我们将深度扩展到164,宽度扩展到16×(见表D.1中的详细网络配置)。对于每个网络,我们计算所有可能的层对之间的CKA,包括卷积层、归一化层、ReLU/LIF层和残差块输出层。因此,层的总数远大于ResNet的规定深度,因为后者只考虑网络中的卷积层。然后,我们将结果可视化为热图,x和y轴表示网络的层,从输入层到输出层。继Nguyen等人(2020)之后,我们对来自测试数据集的4096张图像计算了CKA热图。

  如图2所示,CKA热图呈现为棋盘式网格结构,尤其是对于更深的神经网络。在ResNet-20中,我们在中深层观察到一个亮块,表明ANN和SNN学习重叠表征。随着网络的深入,我们发现CKA热图变得更暗,这意味着ANN中的表征和SNN中的表征正在分化。值得注意的是,我们发现人工ResNet-164中的很大一部分层表现出与脉冲ResNet-164显著不同的表征(<0.2 CKA值),这表明更深的层倾向于学习不同的特征。

  在图2中,中间部分,我们逐步扩大ResNet-20的信道数量。与深度相比,更宽的神经网络的热图变得更亮,这表明SNN和ANN中的表征正在收敛。有趣的是,尽管大多数层在宽网络中学习ANN和SNN之间更相似的表征,但最后几层仍然学习不同的表征。

  我们进一步只选择热图中的对角线元素,并在图2底部中绘制它们。由于SNN和ANN具有相同的网络拓扑,因此这种可视化更具体,可以准确地揭示SNN和ANN在每个相应层的相似性。首先,我们可以发现,在图2中,ResNet-20的CKA曲线显示出相对较高的值。大多数层都在0.5以上,其中一些层甚至可以达到接近1.0。有趣的是,我们观察到,更深的网络往往会产生锯齿状的曲线。这意味着与ANN相比,SNN中的一些层确实学到了不同的表征,然而,这种差异会间歇性地减轻。在后面的章节中,我们将展示相异性的缓解是通过残差连接来实现的。至于宽度,我们通常注意到,对于更宽的网络,CKA曲线大多会变得更高,特别是当比较ResNet-20和ResNet-20×8时,其中大多数层的CKA值都在0.8以上。

Evaluating the Task Performance. 我们在表1中列出了ANN和SNN的准确性。此外,我们还计算了不同宽度和深度配置的精度差异。我们可以发现,如果我们扩大宽度,精度差距会减小,范围从1.39%到0.05%。然而,随着深度的增加,精度差距并不像在更宽的网络中那样持续减小。这解释了更宽的神经网络带来了更多相似的表征,从而减少了精度差距。然而,SNN不能达到与具有不同表征的ANN相同的精度水平。这一发现意味着,目前最先进的SNN依赖于更宽的神经网络,并不能真正开发出比ANN更独特的表征。

 

4.2 The Effect of Residual Connections

  在图2中,CKA曲线以周期性锯齿状出现。为了研究这种相似性振荡的原因,我们研究了残差块中的每一层。在图3(左)中,我们绘制了ResNet-110的CKA曲线,并额外采样了两个残差块,即第10个和第34个块,其架构细节如图3(右)所示。令人惊讶的是,我们发现,每当残差连接遇到主分支时,CKA相似度几乎恢复到1。此外,每次激活通过卷积层或LIF层时,相似性都会降低。相反,BN层不影响相似性,因为它是线性变换。这些结果证实了SNN中的卷积层和LIF层能够学习与ANN不同的表征。然而,残差分支中的表征仍然主导残差后层中的表征,并导致ANN和SNN的表征的结合。

  为了进一步探索为什么残差连接可以将SNN中的表征恢复为类ANN,我们进行了一项消融研究。我们在脉冲ResNet-56中选择三个阶段中的一个,其中选择性地禁用残差连接。在图4中,我们可视化了SNN本身的CKA热图,这意味着x轴和y轴在SNN中都是相同的层。第一个热图展示了完整的残差网络,而其余三个热图则展示了部分残差网络,分别禁用了第一、第二和第三阶段。我们的观察结果可以总结如下:(1) 就阶段间相似性而言,残差连接可以保留前一阶段的输入信息。在图4中的第1和第2个热图中,我们发现残差块可以与其前一阶段具有高度相似性。然而,非残差块不具有这种性质。在第3和第4个热图中,我们可以看到,与前一阶段相比,没有残差连接的块表现出显著不同的表征。因此,我们可以发现残差连接保留了早期层中的表征。因此,如果ANN和SNN在第一层中学习相似的表征,则由于残差连接,相似性可以传播到非常深层。(2) 就阶段内的相似性而言,非残差阶段的热图在所有层上都以统一的表征出现,这意味着该阶段的层是相似的。相反,残差阶段共享网格结构。

  接下来,我们验证了当SNN和ANN都配备了残差连接或不配备残差连接时,在不同的网络深度下它们的准确性。如表2所示,如果启用残差连接,SNN和ANN都可以成功训练非常深的网络。在这种情况下,尽管SNN的精度没有超过ANN,但差距相对较小,精度下降了1~2%。然而,如果从SNN中去除残差连接,则ANN和SNN的精度之间的差距将显著扩大,范围为5~56%。因此,我们可以得出结论,残差连接有助于SNN中的梯度下降优化,并将SNN中表征正则化为与ANN中的表征相似,从而使SNN可以具有与ANN相似的任务性能。

 

4.3 Scaling up Time Steps

  前几节的结果有助于描述空间结构对SNN和ANN之间内部表征差异的影响。接下来,我们询问时间维度是否有助于SNN学习一些独特的信息。为了验证这一点,我们用4/8/16/32/64/128时间步长训练了几个脉冲ResNet-20,并计算了ANN-SNN CKA相似性。在图5中,我们设想了人工ResNet-20和脉冲ResNet-20之间分别具有不同时间步长的CKA热图和曲线。值得注意的是,我们在这些热图中找不到显著的差异。查看CKA曲线,我们还发现许多层是重叠的,特别是当我们关注残差块输出(局部最大值)时。我们发现到达同一点的不同时间步长之间有相似之处,这意味着时间步长变量在SNN中没有提供太多独特的表征。

  为了进一步分析SNN中沿时间维度的表征,我们比较了不同时间步长之间的CKA。具体地,对于SNN内的任何层,我们将特征Xs重塑为[X(1), X(2), … , X(T)],其中X(i)是第 i 个时间步骤的输出。通过计算任意两个时间步骤之间的CKA相似性,即CKA(X(i), X(j)),我们能够构建一个以x,y轴为时间维度的CKA热图,该热图证明了特征在不同的时间步骤上是否相似。图6示出了脉冲ResNet-20中所有残差块的输出的CKA热图,时间步长从4到32不等。一般来说,较深的残差块输出表现出较暗的CKA热图,较浅的层倾向于变黄。特别地,来自第一阶段的所有残差块都具有全黄色CKA热图,这指示了这些块中极高的相似性。第二阶段开始产生跨时间步骤的差异,但在任何一对时间步骤之间,它们仍然有>0.8的相似性。最后一个阶段,尤其是最后一个区块,显示了不同时间步骤之间大约0.5的相似性。总之,随着特征在网络中的传播,SNN中时间的影响逐渐增加。在附录A.4中,我们提供了卷积/LIF层的热图,并发现了类似的趋势。

  我们进一步进行了实证验证,以验证图6中的发现。更具体地说,我们定义了灵敏度度量,并通过将SNN的某些层中的时间步长减少到1并记录相应的精度下降来测量它。在图6中,我们发现第一阶段(s1)在时间维度上具有相同的表征,而最后阶段(s3)表现出更多样的表征。因此,我们选择在s1或s3中将时间步长减少到1。为了实现这种“混合时间步长SNN”,我们在s1之后/s3之前的时间维度中重复/平均激活,以匹配维度。表3总结了灵敏度结果。我们观察到,第一级的精度下降幅度要低得多(<1%),而最后一级的精度则下降了2~4%。此外,如果最后一个阶段只使用1个时间步长,那么增加其他两个阶段的时间步长对精度根本没有好处。这表明LIF神经元在深层比在浅层更有效。

 

4.4 Representation under Event Data

  在本节中,我们评估基于事件的数据集上的CKA相似性。我们选择了CIFAR10-DVS (Li et al., 2017)、N-Caltech 101 (Orchard et al., 2015)和训练脉冲/人工ResNet-20。由于ANN不能容易地处理4维时空事件数据,我们将所有事件集成到一帧中用于ANN训练,并将10帧集成到SNN训练。图7提供了事件数据集上的CKA热图/曲线,显示了与之前的CIFAR-10数据集不同的相似性分布。热图有不同的图案,曲线也不会以周期性的锯齿状出现。此外,相似性分布在数据集级别上不同,即CIFAR10-DVS和N-Caltech 101共享不同的CKA曲线和热图。在N-Caltech 101上,与ANN相比,SNN在浅层和深层中学习不同的特征表征,但在中间层中学习相似的表征。对于CIFAR10-DVS,随着层的加深,相似性继续从0.9降低到0.5。总之,与自然图像数据集相比,对于基于事件的数据集,SNN和ANN共享不同的CKA模式,这意味着SNN在这类数据集中可能具有进一步的优化空间。我们在附录A.3中对CIFAR10-DVS数据集的各种模型给出了更多的CKA结果。

 

4.5 Representation under Adversarial Attack Data

  接下来,我们使用CKA研究SNN和ANN的对抗鲁棒性。受到对于对抗性攻击具有鲁棒性的量化神经网络的启发(Lin et al., 2019),SNN也可以继承这一特性,因为它们的激活也是离散的。先前的工作已经探索了理解SNN的内在鲁棒性(Sharmin et al., 2020; Kundu et al., 2021; Liang et al., 2021; Kim & Panda, 2021c)。然而,他们要么对转换后的SNN进行评估,要么使用发放率编码的图像进行评估。在这里,我们使用直接编码直接训练的SNN和ANN上测试投影梯度下降(PGD)攻击(Madry et al., 2017)。形式上,我们通过限制扰动的L范数来生成对抗性图像,由下式给出:

其中是在第k次迭代时生成的对抗性样本。将生成的样本投影到投影空间上,即干净样本的ε−L邻域。α是攻击优化步长。在更高的情况下,对抗性图像被允许在更大的空间中受到干扰,从而降低任务性能。

  我们在CIFAR-10数据集上评估了脉冲和人工ResNet-20的性能,其值范围为0.001、0.005、0.01、0.02、0.05,以生成对抗性图像。然后,我们计算干净图像和对抗性损坏图像的特征之间的CKA值。结果如图8(左)所示。我们发现,尽管ANN的干净精度高于SNN,但SNN对于对抗性攻击具有更高的鲁棒性。例如,具有0.01 L范数扰动的PGD攻击使ANN的精度降低了43%,而SNN的精度仅降低了22%。我们还研究了干净图像和对抗性图像之间的CKA相似性,如图8的第2和第3子图所示。我们观察到,对抗性攻击的鲁棒性越高,干净图像和损坏图像之间的相似性就越高。CKA曲线证实了这一直觉,表明SNN比ANN具有更高的相似性。我们还观察到了一些有趣的现象。例如,即使具有0.001的小ε值,ANN在第一块中的相似性也大幅降低。此外,当我们关注紫色线(ε=0.02)时,我们注意到ANN和SNN在早期层中具有相似的毅力,但ANN在最后一个块中的相似性比SNN下降得多。这些结果深入了解了模型的鲁棒性,并表明SNN比ANN更具鲁棒性,尤其是在其浅层和深层。

 

5 Discussion and Conclusion

  鉴于SNN由于其生物合理性和最近在任务性能方面的进展而引起了越来越多的研究关注,有必要验证SNN,特别是那些用替代梯度算法训练的SNN,是否能够或有潜力真正开发出不同于ANN的所需特征。在这项工作中,我们进行了一项试点研究,以检查SNN的内部表征,并使用流行的CKA度量将其与ANN进行比较。这个度量标准衡量两个模型对两个不同示例的响应。我们的研究结果可简要总结如下:

  1. 通常,SNN和ANN之间的逐层相似性很高,这表明用替代梯度训练的SNN学习与ANN相似的表征。此外,更广泛的网络,如ResNet-20 8×,几乎所有层的相似性都可以大于0.8。
  2. 对于极深的ANN和SNN,CKA值会变得更低,然而,残差连接在正则化表征中起着重要作用。通过进行消融研究,我们证明了残差连接使SNN学习与ANN相似的表征,并帮助SNN实现高精度。
  3. 时间维度在SNN中没有提供太多额外的表征能力。我们还证明了浅层在时间维度上学习完全静态的表征。即使在浅层中将时间步骤减少到1也不会显著影响SNN的性能。
  4. 在其他类型的数据集上,SNN可能会开发出与ANN不太相似的表征,例如事件数据。

  我们的结果表明,与ANN中的空间表征相比,通过替代梯度算法优化的神经网络不能学习不同的时空表征。当前的SNN学习依赖于残差连接和更广泛的神经网络(例如,Zheng等人(2020)使用与我们的ResNet-20 8×类似的ResNet-19)来获得不错的任务性能。然而,我们的研究表明,这种任务性能高度归功于与ANN的相似表征。此外,在CIFAR10和CIFAR100等静态数据集上,时间维度对SNN表征的影响有限。特别是,ResNet的第一阶段在时间步骤上产生了非常相似的表征。

  尽管如此,我们的研究并不是对SNN的否定。我们的结果基于替代梯度BPTT优化,如上所述,该优化本质上是生物学不可信的,类似于ANN的优化方法。因此,看到SNN和ANN在相似的优化机制下具有相似的表征可能并不奇怪。此外,我们发现输入数据在开发表征时也很重要。事实上,SNN中使用的直接编码为每个时间步骤输入相同的静态图像,再次导致ANN和SNN的表征之间的间隙较小。

  在这里,我们提供了几个未来值得研究的方向:a)SNN的生物学可信学习规则:替代梯度训练倾向于在SNN中学习类似ANN的表征,因此有必要开发一种更适合SNN的优化方法。b)脉冲架构设计:专门的SNN网络架构可以避免学习类似的表征,例如,Kim等人(2022a)。c)理解SNN的鲁棒性:对抗性攻击对人类视觉系统来说无关紧要,这也可能反映在SNN中。我们相信SNN的鲁棒性可以显著提高。总之,我们的工作试图理解用替代梯度训练的SNN的表征,并揭示了一些反直觉的观察结果。我们希望我们的工作能够激励更多的研究来突破SNN的极限。

 

A Additional CKA Results

A.1 Results on VGG Networks

 

A.1.1 Scaling up Width or Depth

 

A.1.2 Scaling up Time Steps

 

A.2 Results on CIFAR-100

 

A.3 Results on CIFAR10-DVS

 

A.4 Similarity Across Time

 

B Numerical Results

 

C The Effect of Network Initialization

 

D Network Architecture Details

 

posted on 2023-05-28 11:28  穷酸秀才大草包  阅读(307)  评论(0)    收藏  举报

导航