liugang1234567 / Gang-neuron

It may be time to improve the neuron of artificial neural network (IEEE preprints-IEEE preprints ranking (TechRxiv): Top 1 in yearly popularity-You should cite it.): https://doi.org/10.36227/techrxiv.12477266. Dendrite Net: A White-Box Module for Classification, Regression, and System Identification: https://arxiv.org/abs/2004.03955.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于收敛问题的对话:注意事项已给出,使用者程序中的bug自行调试。

wangwwno1 opened this issue · comments

作者您好!我对您提的新结构很感兴趣,于是就在CIFAR10上使用该结构进行了实验
但不知为何模型始终无法收敛,甚至出现梯度爆炸的情况
无论是更换成Adam优化器,还是降低学习率训练,都没有改善现状

我是第一次做图像分类任务,实现上可能有不准确的地方,不知能否请您帮忙看一下呢
附上实现的源码
DendriteNetwork.zip

你忘记归一化了,看论文中写的注意事项

您的意思是说对输入做归一化吗?这个我在预处理的时候就已完成

如果指的是对ResDD的输入和输出做归一化……
我试着在DDBlock的输入和输出都加了BatchNorm,但哪怕只有一层DDBlock,训练时也很容易出现损失爆炸的情况
不知道是不是我对网络输出的处理有问题……还请您费心指点

啊,我好像明白了,可能是我损失函数写错了,我再试试看

我把原来的Softmax和NLLoss都去掉了,改成论文中所述的MSELoss,但仍然会出现损失爆炸的情况

因为这个网络的可解释性似乎比深度网络好,也只需要加法乘法运算,所以我想用到我的任务场景里
所以,能否请您抽空提供一份在CIFAR10数据集上的训练代码样例呢?

CIFAR10数据集不算很大,使用PyTorch Lightning和torchvision可以在两小时内写出训练流程
附上相关文档链接:
https://pytorch.org/vision/stable/datasets.html
https://pytorchlightning.github.io/lightning-tutorials/notebooks/lightning_examples/cifar10-baseline.html

  1. 我没有义务去帮你找代码或者其他bug;
  2. 自己的课题自己研究;
  3. 这种收敛和数据集无关;
  4. DD能收敛的原因见这个图:https://zhuanlan.zhihu.com/p/269306977 。 如果你自己的代码出现bug,可根据这个图的原理去推测问题所在,大概率是归一化问题,仔细检查,看看是不是哪里有点bug;
  5. 如果不存在梯度爆炸,能收敛,只是收敛不够,考虑表达能力不够问题,加模块数;

具体问题,你还需自己去调。

实际上DD及gang neuron渐渐地已有其他人在自己领域验证了,按照他们的描述,应用自己领域后效果不错,国内的,例如:http://qikan.cqvip.com/Qikan/Article/Detail?id=7104999561

你的代码bug及处理问题,根据原理,自行调。