Open HaoyuYao opened 8 months ago
好响应该是先经过network0,再经过snn tailor.0.0,然后snn tailor.0.1,snn tailor.0.2,然后network3,所以应该是先卷积,再缩放,IF激活,再缩放,池化。我看print tabular这样显示。老铁也在搞转换吗?可以加好友交流不?
老铁知道怎么查看转换后的中间层的输出吗?还有转换后的权重怎么看?
其实就是,把原来的ANN的激活函数(比如ReLU),替换为snn tailor。 然后snn tailor是这样工作的:缩放——IFNode激活——缩放。 所以转换完的SNN,相较于ANN,计算流程除了上述snn tailor处的不同,其他没有任何区别。 @Steven0007 @HaoyuYao
如图所示,这是教程在minst任务中的ann-snn转化示例,对于其中的voltagescaler 我有两个疑问: Q1:计算的流程是否如下:假设输入网络的变量为x,我们首先对x进行缩放,即乘以0.240048,然后经过卷积层、IFNode激活、平均池化层得到输出;再对输出进行缩放,即乘以4.165831;在将输出作为下一层的输入时,我们还需将其进行缩放,即乘以0.307458,然后经过卷积层、IFNode激活、平均池化层得到输出.....以此类推。 Q2:如果上述的计算流程是正确的,在经过最后一个卷积层、IFNode激活、平均池化层之后(也就是即将输入到Flatten层中),我们对Flatten层的输入进行了缩放,即乘以16.451399。但是按照教程所提供的归一化理论,缩放值应是输入的最大值/输出的最大值,而在Flatten后,我们并没有除以输出的最大值,所以想问这里乘以16.451399是不是错误的?是否应该改为乘以1.0,即不进行缩放,将最后一层卷积的输出直接作为Flatten层的输入?