KindXiaoming / pykan

Kolmogorov Arnold Networks
MIT License
15.06k stars 1.39k forks source link

遇到了一个奇怪的bug:data里面测试集的维度会对模型的结果产生 #486

Open buyudaren3 opened 2 weeks ago

buyudaren3 commented 2 weeks ago

在使用kan模型时,pykan版本为0.0.2: image

将data['test_input']和data['test_label']设置为一个是153的数组,一个是151的数组,里面都是1,得到的训练结果如下: image 再将data['test_input']和data['test_label']设置为一个是13的数组,一个是11的数组,里面都是1,得到的训练结果如下: image 再将data['test_input']和data['test_label']设置为真实的测试集,test_input的维度为153,test_label的维度为151,得到的训练结果如下:image 可见data['test_input']和data['test_label']的值确实没有参与模型的训练过程,但是他们的维度对训练结果有影响 请问有人遇到过类似的情况吗?

Kaysen-Zhao commented 1 week ago

训练过程存在一定的随机性吧,更改两个测试集的时候有重新训练吗?如果是同一个模型计算出来的R2值不一样就是存在bug(训练集所有输入都相同,R2这些指标也应该相同);如果是两个不同的模型,那R2这些指标肯定会有差异,你的差异这么大感觉是因为模型对全1的数据拟合不好

buyudaren3 commented 1 week ago

训练过程存在一定的随机性吧,更改两个测试集的时候有重新训练吗?如果是同一个模型计算出来的R2值不一样就是存在bug(训练集所有输入都相同,R2这些指标也应该相同);如果是两个不同的模型,那R2这些指标肯定会有差异,你的差异这么大感觉是因为模型对全1的数据拟合不好

更改测试集的的时候是重新训练过的,是同一个模型计算出不同的R2值(只是改了测试集,其他的所有参数都没改变)