fangwei123456/Parallel-Spiking-Neuron

关于cifar10dvs的vgg模型训练问题

Opened this issue · 5 comments

liufh1 commented

您好,您的工作十分有趣,我在试图复现您的程序。
我在配置好依赖以及使用move_data.py文件与处理好数据后,运行
python train_vgg.py -b 32 --epochs 200 -method PSN -TET -T 10
命令。
发现在每个batch中,输出的mean_out值是一样的。
并且训练后的正确率是10%左右。
请问是我的操作在哪里有问题吗,您那里是否会显示这样的特性呢。
谢谢!

这里有原始的日志:

https://github.com/fangwei123456/Parallel-Spiking-Neuron/blob/main/cifar10dvs/T10_opt_SGD0.1_tau_0.25_method_PSN_b_32_TET_2gpu.log

你显示正确率10%相当于网络完全没得到训练,可能哪里配置出问题了。如果用的就是原始代码不做任何改动,那可能是数据集处理部分的问题

我也遇到了这个问题,请问你解决了吗?是哪儿的问题呢?
我的是有的没问题,有的会出问题,不知道哪个会出现问题,感觉随机的……并且是刚开始是好的,但是到一半就掉下来了。
微信图片_20240327234554
微信图片_20240327234330
微信图片_20240327234419

用的是原始训练参数吗

参数是用的原始的参数,不过我加入了自己的模块。
还有就是同样的网络,我换个随机种子,有的就变好了可以跑完,不会掉下来,有的还依然会掉下来。

另外,在cifar10 上做了一些实验,这种情况只出现一次,出问题的频率远低于cifar10dvs。

其他的数据集上没有出现这种问题。

想过很多原因,我个人目前猜测的原因,很可能是由于数据集太小了,导致训练参数时候出现问题?

cifar10dvs可能更难一些。训练崩溃一般是BN层的除法导致出现inf所致