IntegerSNNWarapper(
  (model): DistributedDataParallel(
    (module): VGG(
      (features): Sequential(
        (0): SpikeInferConv2dFuseBN(
          3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.09016278386116028, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.3330437242984772, per_channel=False)
              (quan_a_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.26129350066185, per_channel=False)
            )
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(145), N=Parameter containing:
          tensor(11), Add=False)
        )
        (1): DummyModule()
        (2): Identity()
        (3): SpikeInferConv2dFuseBN(
          64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.053376324474811554, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.32065239548683167, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.3330437242984772, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(227), N=Parameter containing:
          tensor(12), Add=False)
        )
        (4): DummyModule()
        (5): Identity()
        (6): SpikeInferAvgPool(
          (m): QuanInferAvgPool(
            (m): QuanAvgPool(
              (m): AvgPool2d(kernel_size=2, stride=2, padding=0)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.14542996883392334, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.32065239548683167, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=-8, M=Parameter containing:
          tensor(141), N=Parameter containing:
          tensor(8), Add=False)
        )
        (7): SpikeInferConv2dFuseBN(
          64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.04961628466844559, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.4265691637992859, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.14542996883392334, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(139), N=Parameter containing:
          tensor(13), Add=False)
        )
        (8): DummyModule()
        (9): Identity()
        (10): SpikeInferConv2dFuseBN(
          128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.021179407835006714, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.560141921043396, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.4265691637992859, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(132), N=Parameter containing:
          tensor(13), Add=False)
        )
        (11): DummyModule()
        (12): Identity()
        (13): SpikeInferAvgPool(
          (m): QuanInferAvgPool(
            (m): QuanAvgPool(
              (m): AvgPool2d(kernel_size=2, stride=2, padding=0)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2776375114917755, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.560141921043396, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=-8, M=Parameter containing:
          tensor(129), N=Parameter containing:
          tensor(8), Add=False)
        )
        (14): SpikeInferConv2dFuseBN(
          128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.030207933858036995, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5821388959884644, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2776375114917755, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(236), N=Parameter containing:
          tensor(14), Add=False)
        )
        (15): DummyModule()
        (16): Identity()
        (17): SpikeInferConv2dFuseBN(
          256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.012704947963356972, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.6708196401596069, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5821388959884644, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(181), N=Parameter containing:
          tensor(14), Add=False)
        )
        (18): DummyModule()
        (19): Identity()
        (20): SpikeInferConv2dFuseBN(
          256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.012970452196896076, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7817875742912292, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.6708196401596069, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(182), N=Parameter containing:
          tensor(14), Add=False)
        )
        (21): DummyModule()
        (22): Identity()
        (23): SpikeInferAvgPool(
          (m): QuanInferAvgPool(
            (m): QuanAvgPool(
              (m): AvgPool2d(kernel_size=2, stride=2, padding=0)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.3903864026069641, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7817875742912292, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=-8, M=Parameter containing:
          tensor(128), N=Parameter containing:
          tensor(8), Add=False)
        )
        (24): SpikeInferConv2dFuseBN(
          256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.026041120290756226, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7702764868736267, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.3903864026069641, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(216), N=Parameter containing:
          tensor(14), Add=False)
        )
        (25): DummyModule()
        (26): Identity()
        (27): SpikeInferConv2dFuseBN(
          512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.008766233921051025, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7365282773971558, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7702764868736267, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(150), N=Parameter containing:
          tensor(14), Add=False)
        )
        (28): DummyModule()
        (29): Identity()
        (30): SpikeInferConv2dFuseBN(
          512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.00965858343988657, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5660922527313232, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.7365282773971558, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(206), N=Parameter containing:
          tensor(14), Add=False)
        )
        (31): DummyModule()
        (32): Identity()
        (33): SpikeInferAvgPool(
          (m): QuanInferAvgPool(
            (m): QuanAvgPool(
              (m): AvgPool2d(kernel_size=2, stride=2, padding=0)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2354489266872406, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5660922527313232, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=-8, M=Parameter containing:
          tensor(154), N=Parameter containing:
          tensor(8), Add=False)
        )
        (34): SpikeInferConv2dFuseBN(
          512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.02880595065653324, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5071495771408081, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2354489266872406, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(219), N=Parameter containing:
          tensor(14), Add=False)
        )
        (35): DummyModule()
        (36): Identity()
        (37): SpikeInferConv2dFuseBN(
          512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.006604668218642473, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.30664384365081787, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.5071495771408081, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(179), N=Parameter containing:
          tensor(14), Add=False)
        )
        (38): DummyModule()
        (39): Identity()
        (40): SpikeInferConv2dFuseBN(
          512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
          (m): QuanInferConv2dFuseBN(
            512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
            (m): QuanConv2dFuseBN(
              512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)
              (m): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.018426112830638885, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2279175966978073, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.30664384365081787, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=0, M=Parameter containing:
          tensor(203), N=Parameter containing:
          tensor(13), Add=False)
        )
        (41): DummyModule()
        (42): Identity()
        (43): SpikeInferAvgPool(
          (m): QuanInferAvgPool(
            (m): QuanAvgPool(
              (m): AvgPool2d(kernel_size=2, stride=2, padding=0)
              (quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.1167186051607132, per_channel=False)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.2279175966978073, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=7, neg_min=-8, M=Parameter containing:
          tensor(250), N=Parameter containing:
          tensor(9), Add=False)
        )
      )
      (classifier): Sequential(
        (0): SpikeInferLinear(
          in_features=512, out_features=4096, bias=True
          (m): QuanInferLinear(
            in_features=512, out_features=4096, bias=True
            (m): QuanLinear(
              in_features=512, out_features=4096, bias=True
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.007234616670757532, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=15, thd_neg=0, s=0.05703054368495941, per_channel=False)
              (m): Linear(in_features=512, out_features=4096, bias=True)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.1167186051607132, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=15, neg_min=0, M=Parameter containing:
          tensor(243), N=Parameter containing:
          tensor(14), Add=False)
        )
        (1): Identity()
        (2): Dropout(p=0.5, inplace=False)
        (3): SpikeInferLinear(
          in_features=4096, out_features=4096, bias=True
          (m): QuanInferLinear(
            in_features=4096, out_features=4096, bias=True
            (m): QuanLinear(
              in_features=4096, out_features=4096, bias=True
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.006461654789745808, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=15, thd_neg=0, s=0.07945746183395386, per_channel=False)
              (m): Linear(in_features=4096, out_features=4096, bias=True)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=15, thd_neg=0, s=0.05703054368495941, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=15, neg_min=0, M=Parameter containing:
          tensor(152), N=Parameter containing:
          tensor(15), Add=False)
        )
        (4): Identity()
        (5): Dropout(p=0.5, inplace=False)
        (6): SpikeInferLinear(
          in_features=4096, out_features=100, bias=True
          (m): QuanInferLinear(
            in_features=4096, out_features=100, bias=True
            (m): QuanLinear(
              in_features=4096, out_features=100, bias=True
              (quan_w_fn): LsqQuan(thd_pos=7, thd_neg=-8, s=0.007518732454627752, per_channel=False)
              (quan_out_fn): LsqQuan(thd_pos=127, thd_neg=-128, s=0.025136614218354225, per_channel=False)
              (m): Linear(in_features=4096, out_features=100, bias=True)
            )
            (last_quan_out_fn): LsqQuan(thd_pos=15, thd_neg=0, s=0.07945746183395386, per_channel=False)
          )
          (neuron): STBIFNeuron(pos_max=127, neg_min=-128, M=Parameter containing:
          tensor(195), N=Parameter containing:
          tensor(13), Add=False)
        )
      )
    )
  )
)