for idx, m in enumerate(net.named_modules()):
print(idx, '->', m)
此时输出的就是层的名字,比如说“conv.1”,"fc.3"等等
0 -> ('', Net(
(static_conv): Sequential(
(0): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
)
(conv): Sequential(
(0): IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(4): IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(fc): Sequential(
(0): Flatten(start_dim=1, end_dim=-1)
(1): Dropout(p=0.7)
(2): Linear(in_features=6272, out_features=1152, bias=False)
(3): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(4): Dropout(p=0.7)
(5): Linear(in_features=1152, out_features=128, bias=False)
(6): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(7): Linear(in_features=128, out_features=5, bias=False)
(8): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
)
))
1 -> ('static_conv', Sequential(
(0): Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
))
2 -> ('static_conv.0', Conv2d(1, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))
3 -> ('static_conv.1', BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True))
4 -> ('conv', Sequential(
(0): IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(4): IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
))
5 -> ('conv.0', IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
))
6 -> ('conv.0.surrogate_function', ATan(alpha=2.0, spiking=True))
7 -> ('conv.1', MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False))
8 -> ('conv.2', Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))
9 -> ('conv.3', BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True))
10 -> ('conv.4', IFNode(
v_threshold=1.0, v_reset=0.0, detach_reset=False
(surrogate_function): ATan(alpha=2.0, spiking=True)
))
11 -> ('conv.4.surrogate_function', ATan(alpha=2.0, spiking=True))
12 -> ('conv.5', MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False))
13 -> ('fc', Sequential(
(0): Flatten(start_dim=1, end_dim=-1)
(1): Dropout(p=0.7)
(2): Linear(in_features=6272, out_features=1152, bias=False)
(3): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(4): Dropout(p=0.7)
(5): Linear(in_features=1152, out_features=128, bias=False)
(6): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
(7): Linear(in_features=128, out_features=5, bias=False)
(8): LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
)
))
14 -> ('fc.0', Flatten(start_dim=1, end_dim=-1))
15 -> ('fc.1', Dropout(p=0.7))
16 -> ('fc.2', Linear(in_features=6272, out_features=1152, bias=False))
17 -> ('fc.3', LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
))
18 -> ('fc.3.surrogate_function', ATan(alpha=2.0, spiking=True))
19 -> ('fc.4', Dropout(p=0.7))
20 -> ('fc.5', Linear(in_features=1152, out_features=128, bias=False))
21 -> ('fc.6', LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
))
22 -> ('fc.6.surrogate_function', ATan(alpha=2.0, spiking=True))
23 -> ('fc.7', Linear(in_features=128, out_features=5, bias=False))
24 -> ('fc.8', LIFNode(
v_threshold=1.0, v_reset=0.0, tau=2.0
(surrogate_function): ATan(alpha=2.0, spiking=True)
))
25 -> ('fc.8.surrogate_function', ATan(alpha=2.0, spiking=True))