-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
我之前有在github上和您讨论过,但是后面经过改动还是无法正确复现cifar10DVS数据集上的结果,能否请您就DVS数据集的训练给我一些指导。
我想把我的改动流程和您讨论一下,看看是否有什么纰漏
首先是configs文件,项目中只给出了small这个yaml文件,按我的的理解的话训练cifar10DVS 需要在yaml文件中的DATA增加一个参数:
DATASET :cifar10dvs
然后在就会构建tiny_dvs模型,然后由于num_subnet(8)和训练数据的帧数(10)对不上,
T-RevSNN/models/spike_rev_reuse.py
Line 514 in bf88e57
| num_subnet = 8 |
我就把这里的num_subnet=8改成10了
然后将这一行放入for循环内部,保证输出是(T,B,C)尺寸
T-RevSNN/models/spike_rev_reuse.py
Line 456 in bf88e57
| x_cls_out.append(self.cls_blocks(c3 / self.num_subnet)) |
但是由于此时输出的是长度为T的list 而不是张量,我就将main_no_decoder.py下这里改成了这样,同时对TET_loss使用output[-1]我也有些疑问,我这里把[-1]去掉了,因为我的理解来说是每个T都要用于计算TET_loss

对于后续的validata阶段,按照您之前的说法把517以及518行删掉了
Line 517 in bf88e57
| if model.module.dvs: |
在计算ACC的时候依然还是使用输出的最后一个通道(output_last=output[-1])来计算的
最终300轮之后我的模型在cifaer10dvs上的acc1仅有46%左右,是否是我哪里疏忽了
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
