yfguo91 / IM-Loss-Information-Maximization-Loss-for-Spiking-Neural-Networks

Official simplified implementation of IM-Loss.
2 stars 0 forks source link

The code produced unusual results even without any modifications. #1

Open JiaqiChen815 opened 2 months ago

JiaqiChen815 commented 2 months ago

Hi yfguo, I'd like to run the project on the cifar10 dataset. Unfortunately, I've encountered some unusual results as follows. Could you please help explain why the code isn't working? Thank you very much.

Time elapsed: 2.5160064697265625
tensor(2.3065, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0957, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 5.4820191860198975
tensor(2.3005, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0937, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 8.224401235580444
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.806175947189331
tensor(2.3032, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 19

Time elapsed: 2.621997594833374
tensor(2.3065, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 5.071321487426758
tensor(2.3005, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0954, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.414266109466553
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0955, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.854078531265259
tensor(2.3032, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0948, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 20

Time elapsed: 2.3380064964294434
tensor(2.3064, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0969, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.684789180755615
tensor(2.3006, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0970, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.105907440185547
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.586540222167969
tensor(2.3031, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0954, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 21

Time elapsed: 2.4517087936401367
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0980, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.906440019607544
tensor(2.3007, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0973, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.477343797683716
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0970, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.011773109436035
tensor(2.3031, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0984, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 22

Time elapsed: 2.432337999343872
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0990, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.947934150695801
tensor(2.3008, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1017, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.39822793006897
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0984, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.842048406600952
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0987, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 23

Time elapsed: 2.4248645305633545
tensor(2.3064, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1363, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.903534412384033
tensor(2.3008, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1039, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.391828298568726
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1031, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.873691082000732
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1031, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 24

Time elapsed: 2.4539432525634766
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1411, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.891488790512085
tensor(2.3009, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1096, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.318920612335205
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1058, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.833449125289917
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1110, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 25

Time elapsed: 2.467111349105835
tensor(2.3061, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1167, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.8138267993927
tensor(2.3010, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1161, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.239405870437622
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1137, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.60375189781189
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1148, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 26

Time elapsed: 2.345698833465576
tensor(2.3062, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1417, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.72053599357605
tensor(2.3011, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1183, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.054431676864624
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1157, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.43491816520691
tensor(2.3029, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1158, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 27

Time elapsed: 2.4523515701293945
tensor(2.3060, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1175, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.904651880264282
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1183, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.314801216125488
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1172, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.779573917388916
tensor(2.3029, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1164, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 28

Time elapsed: 2.426724433898926
tensor(2.3059, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1185, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.901515483856201
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1180, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.466801404953003
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1173, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.177380561828613
tensor(2.3028, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1164, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 29

Time elapsed: 2.430713176727295
tensor(2.3058, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1175, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.775119066238403
tensor(2.3014, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1214, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.120392084121704
tensor(2.3011, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1182, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.459439039230347
tensor(2.3027, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1171, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 30
yfguo91 commented 2 months ago

Hi yfguo, I'd like to run the project on the cifar10 dataset. Unfortunately, I've encountered some unusual results as follows. Could you please help explain why the code isn't working? Thank you very much.

Time elapsed: 2.5160064697265625
tensor(2.3065, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0957, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 5.4820191860198975
tensor(2.3005, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0937, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 8.224401235580444
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.806175947189331
tensor(2.3032, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 19

Time elapsed: 2.621997594833374
tensor(2.3065, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 5.071321487426758
tensor(2.3005, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0954, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.414266109466553
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0955, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.854078531265259
tensor(2.3032, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0948, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 20

Time elapsed: 2.3380064964294434
tensor(2.3064, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0969, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.684789180755615
tensor(2.3006, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0970, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.105907440185547
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0950, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.586540222167969
tensor(2.3031, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0954, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 21

Time elapsed: 2.4517087936401367
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0980, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.906440019607544
tensor(2.3007, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0973, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.477343797683716
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0970, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.011773109436035
tensor(2.3031, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0984, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 22

Time elapsed: 2.432337999343872
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0990, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.947934150695801
tensor(2.3008, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1017, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.39822793006897
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0984, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.842048406600952
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.0987, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 23

Time elapsed: 2.4248645305633545
tensor(2.3064, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1363, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.903534412384033
tensor(2.3008, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1039, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.391828298568726
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1031, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.873691082000732
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1031, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 24

Time elapsed: 2.4539432525634766
tensor(2.3063, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1411, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.891488790512085
tensor(2.3009, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1096, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.318920612335205
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1058, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.833449125289917
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1110, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 25

Time elapsed: 2.467111349105835
tensor(2.3061, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1167, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.8138267993927
tensor(2.3010, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1161, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.239405870437622
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1137, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.60375189781189
tensor(2.3030, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1148, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 26

Time elapsed: 2.345698833465576
tensor(2.3062, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1417, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.72053599357605
tensor(2.3011, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1183, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.054431676864624
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1157, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.43491816520691
tensor(2.3029, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1158, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 27

Time elapsed: 2.4523515701293945
tensor(2.3060, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1175, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.904651880264282
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1183, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.314801216125488
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1172, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.779573917388916
tensor(2.3029, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1164, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 28

Time elapsed: 2.426724433898926
tensor(2.3059, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1185, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.901515483856201
tensor(2.3013, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1180, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.466801404953003
tensor(2.3012, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1173, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 10.177380561828613
tensor(2.3028, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1164, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 29

Time elapsed: 2.430713176727295
tensor(2.3058, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1175, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 4.775119066238403
tensor(2.3014, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1214, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 7.120392084121704
tensor(2.3011, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1182, device='cuda:0', grad_fn=<DivBackward0>)
Time elapsed: 9.459439039230347
tensor(2.3027, device='cuda:0', grad_fn=<AddBackward0>)
tensor(0.1171, device='cuda:0', grad_fn=<DivBackward0>)
Test Accuracy of the model on the 10000 test images: 10.0
best_acc is: tensor([10.], device='cuda:0')
best_iter: 0
Iters: 30

看上去是没训起来,权重初始不够好,或者没有加正则化