danfenghong / IEEE_TGRS_SpectralFormer

Danfeng Hong, Zhu Han, Jing Yao, Lianru Gao, Bing Zhang, Antonio Plaza, Jocelyn Chanussot. Spectralformer: Rethinking hyperspectral image classification with transformers, IEEE Transactions on Geoscience and Remote Sensing (TGRS), 2021
219 stars 39 forks source link

关于保存训练模型 #21

Open chanrunz opened 1 year ago

chanrunz commented 1 year ago

您好老师,我想问一下您这个代码里面是不是没有写保存训练好的模型参数的代码,我要是测试的话是不是应该用我自己训练好的模型去测试,而不是直接用您给的log文件夹里的啊,我现在想用在自己服务器上训练好的模型去测试一下,这该怎么操作呀,希望可以得到您的回复谢谢啦。 image image image 还有老师您看一下我训练出来这个结果是正常的嘛 麻烦了

danfenghong commented 1 year ago

里面有保存训练好模型的代码,可以训练自己的模型。

chanrunz @.***> 于2023年3月26日周日 14:08写道:

您好老师,我想问一下您这个代码里面是不是没有写保存训练好的模型参数的代码,我要是测试的话是不是应该用我自己训练好的模型去测试,而不是直接用您给的log文件夹里的啊,我现在想用在自己服务器上训练好的模型去测试一下,这该怎么操作呀,希望可以得到您的回复谢谢啦。 [image: image] https://user-images.githubusercontent.com/118676108/227758479-6cd64fde-608c-49a5-bea0-a8844820df1d.png [image: image] https://user-images.githubusercontent.com/118676108/227758484-ae79e98c-6c76-4893-ba99-300f28e01e3a.png [image: image] https://user-images.githubusercontent.com/118676108/227758492-e7bedda8-7228-420f-868e-d329eb7e38a2.png 还有老师您看一下我训练出来这个结果是正常的嘛 麻烦了

— Reply to this email directly, view it on GitHub https://github.com/danfenghong/IEEE_TGRS_SpectralFormer/issues/21, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFL2GZXAKRHQZ6DSHWVN3CLW57MN5ANCNFSM6AAAAAAWH7KH5U . You are receiving this because you are subscribed to this thread.Message ID: @.***>

chanrunz commented 1 year ago

image 麻烦老师了,您看它就报这个错,就是训练完之后的那个模型参数pt文件没有的呀

danfenghong commented 1 year ago

同学你好,关于模型保存问题,其实可以直接网上搜索下解决思路,应该是一个较为简单的coding问题,我目前不知道你的编程环境以及平台版本,没法直接对代码debug。 祝好!

chanrunz @.***> 于2023年3月26日周日 22:05写道:

[image: image] https://user-images.githubusercontent.com/118676108/227781099-47dcb65b-6351-4d99-9afa-b1d498742d7c.png 麻烦老师了,您看它就报这个错,就是训练完之后的那个模型参数pt文件没有的呀

— Reply to this email directly, view it on GitHub https://github.com/danfenghong/IEEE_TGRS_SpectralFormer/issues/21#issuecomment-1484106531, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFL2GZXJGEKWGKGLH7DHRR3W6BEKNANCNFSM6AAAAAAWH7KH5U . You are receiving this because you commented.Message ID: @.***>

chanrunz commented 1 year ago

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

chanrunz commented 1 year ago

老师,非常不好意思,我这基础较差,可能问题有点多,非常不好意思,就是我如果想要得到您论文里提到的精度,是不是由于代码环境和服务器的关系,是不是我要自己多次去调整Epochs和权重去训练,测试,才可以得到您论文中的结果啊。我在想我之前训练以后,再测试然后得到的精度和您的差太多的原因,是不是有可能不同代码环境和epochs的原因,希望的得到您的回复!祝好。如果最后能通过我自己的调试得出和您文章里的结果一样的话,这对我很重要。谢谢啦

danfenghong commented 1 year ago

我不确定是不是你因为你的环境配置和版本的问题,还是使用数据的问题,我们已经给出的相应的迭代次数和参数,不需要再去调整。已经很多人使用过是没有问题的。 可以再确认下使用是否正确。

chanrunz @.***> 于2023年3月27日周一 22:01写道:

老师,非常不好意思,我这基础较差,可能问题有点多,非常不好意思,就是我如果想要得到您论文里提到的精度,是不是由于代码环境和服务器的关系,是不是我要自己多次去调整Epochs和权重去训练,测试,才可以得到您论文中的结果啊。我在想我之前训练以后,再测试然后得到的精度和您的差太多的原因,是不是有可能不同代码环境和epochs的原因,希望的得到您的回复!祝好。如果最后能通过我自己的调试得出和您文章里的结果一样的话,这对我很重要。谢谢啦

— Reply to this email directly, view it on GitHub https://github.com/danfenghong/IEEE_TGRS_SpectralFormer/issues/21#issuecomment-1485159507, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFL2GZQZCEOXY3ZB3J76NTDW6GMUHANCNFSM6AAAAAAWH7KH5U . You are receiving this because you commented.Message ID: @.***>

mx5518 commented 1 year ago

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

同学你好,第一个问题,为什么精度会一样,我觉得是代码中没有划分验证集,文中的测试集就是验证集,自己训练最后是用验证集(也是测试集)得到的精度,而你用自己的pt文件测试的时候,用的测试集还是原来的测试集,所以最后得到的精度是一样的(我个人理解,不一定对)。第二个问题,无法达到和论文中一样的精度,这个问题我也遇到了,我觉得可能是python和torch版本的原因,但是通过调参是可以达到和文中相似的结果的。

chanrunz commented 1 year ago

我不确定是不是你因为你的环境配置和版本的问题,还是使用数据的问题,我们已经给出的相应的迭代次数和参数,不需要再去调整。已经很多人使用过是没有问题的。 可以再确认下使用是否正确。 chanrunz @.> 于2023年3月27日周一 22:01写道: 老师,非常不好意思,我这基础较差,可能问题有点多,非常不好意思,就是我如果想要得到您论文里提到的精度,是不是由于代码环境和服务器的关系,是不是我要自己多次去调整Epochs和权重去训练,测试,才可以得到您论文中的结果啊。我在想我之前训练以后,再测试然后得到的精度和您的差太多的原因,是不是有可能不同代码环境和epochs的原因,希望的得到您的回复!祝好。如果最后能通过我自己的调试得出和您文章里的结果一样的话,这对我很重要。谢谢啦 — Reply to this email directly, view it on GitHub <#21 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFL2GZQZCEOXY3ZB3J76NTDW6GMUHANCNFSM6AAAAAAWH7KH5U . You are receiving this because you commented.Message ID: @.>

好的谢谢老师!我再检查检查

chanrunz commented 1 year ago

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

同学你好,第一个问题,为什么精度会一样,我觉得是代码中没有划分验证集,文中的测试集就是验证集,自己训练最后是用验证集(也是测试集)得到的精度,而你用自己的pt文件测试的时候,用的测试集还是原来的测试集,所以最后得到的精度是一样的(我个人理解,不一定对)。第二个问题,无法达到和论文中一样的精度,这个问题我也遇到了,我觉得可能是python和torch版本的原因,但是通过调参是可以达到和文中相似的结果的。

1.你好,同学,非常感谢你的回复。请问你训练完以后自己保存模型参数,再去加载模型参数它的测试精度也是和我出现同样情况嘛,就是和训练精度一样这种情况! 2.请问你自己进行调参的参数重新设置的都是多少啊,可以告知一下嘛, 祝好

mx5518 commented 1 year ago

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

同学你好,第一个问题,为什么精度会一样,我觉得是代码中没有划分验证集,文中的测试集就是验证集,自己训练最后是用验证集(也是测试集)得到的精度,而你用自己的pt文件测试的时候,用的测试集还是原来的测试集,所以最后得到的精度是一样的(我个人理解,不一定对)。第二个问题,无法达到和论文中一样的精度,这个问题我也遇到了,我觉得可能是python和torch版本的原因,但是通过调参是可以达到和文中相似的结果的。

1.你好,同学,非常感谢你的回复。请问你训练完以后自己保存模型参数,再去加载模型参数它的测试精度也是和我出现同样情况嘛,就是和训练精度一样这种情况! 2.请问你自己进行调参的参数重新设置的都是多少啊,可以告知一下嘛, 祝好

你好,我没有用自己训练的模型参数去进行测试,但是分析代码你会发现,不管是自己训练后测试得到的精度,还是保存参数再去测试得到的精度应该是一样的,你得到的结果没有错。因为训练集,测试集,随机种子都是固定的,得到的结果肯定是一样的呀!我理解你的意思可能是作者在自己训练的时候没有用测试集,其实作者是用了测试集的,最后输出的结果(就是你发的最上面那三张图)不是你训练集训练得到的精度,而是用测试集(准确的说应该叫验证集)测试得到的精度,而非训练精度,训练精度在300个epoch的时候已经快到100%了。你可以仔细读一下train那部分的代码就明白了。 具体调参的话,可以改一下band_patch, epoch, 以及学习率,就每个参数都试一试! 不知道我有没有说清楚,希望能给你带来帮助!祝好!

chanrunz commented 1 year ago

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

同学你好,第一个问题,为什么精度会一样,我觉得是代码中没有划分验证集,文中的测试集就是验证集,自己训练最后是用验证集(也是测试集)得到的精度,而你用自己的pt文件测试的时候,用的测试集还是原来的测试集,所以最后得到的精度是一样的(我个人理解,不一定对)。第二个问题,无法达到和论文中一样的精度,这个问题我也遇到了,我觉得可能是python和torch版本的原因,但是通过调参是可以达到和文中相似的结果的。

1.你好,同学,非常感谢你的回复。请问你训练完以后自己保存模型参数,再去加载模型参数它的测试精度也是和我出现同样情况嘛,就是和训练精度一样这种情况! 2.请问你自己进行调参的参数重新设置的都是多少啊,可以告知一下嘛, 祝好

你好,我没有用自己训练的模型参数去进行测试,但是分析代码你会发现,不管是自己训练后测试得到的精度,还是保存参数再去测试得到的精度应该是一样的,你得到的结果没有错。因为训练集,测试集,随机种子都是固定的,得到的结果肯定是一样的呀!我理解你的意思可能是作者在自己训练的时候没有用测试集,其实作者是用了测试集的,最后输出的结果(就是你发的最上面那三张图)不是你训练集训练得到的精度,而是用测试集(准确的说应该叫验证集)测试得到的精度,而非训练精度,训练精度在300个epoch的时候已经快到100%了。你可以仔细读一下train那部分的代码就明白了。 具体调参的话,可以改一下band_patch, epoch, 以及学习率,就每个参数都试一试! 不知道我有没有说清楚,希望能给你带来帮助!祝好!

好的谢谢老师回复!就是我已经在代码中编写了保存训练模型的代码,然后在进行测试的时候去加载我所保存的pt文件时,其精度为何和训练时候的精度一模一样呢,无法达到您文章中所给的精度,请问这是什么问题呀,我在本地所保存的pt文件大小和您所提供的log文件夹里的pt文件大小都是一样的,为什么我加载我保存的pt文件就无法达到那个精度 image

同学你好,第一个问题,为什么精度会一样,我觉得是代码中没有划分验证集,文中的测试集就是验证集,自己训练最后是用验证集(也是测试集)得到的精度,而你用自己的pt文件测试的时候,用的测试集还是原来的测试集,所以最后得到的精度是一样的(我个人理解,不一定对)。第二个问题,无法达到和论文中一样的精度,这个问题我也遇到了,我觉得可能是python和torch版本的原因,但是通过调参是可以达到和文中相似的结果的。

1.你好,同学,非常感谢你的回复。请问你训练完以后自己保存模型参数,再去加载模型参数它的测试精度也是和我出现同样情况嘛,就是和训练精度一样这种情况! 2.请问你自己进行调参的参数重新设置的都是多少啊,可以告知一下嘛, 祝好

你好,我没有用自己训练的模型参数去进行测试,但是分析代码你会发现,不管是自己训练后测试得到的精度,还是保存参数再去测试得到的精度应该是一样的,你得到的结果没有错。因为训练集,测试集,随机种子都是固定的,得到的结果肯定是一样的呀!我理解你的意思可能是作者在自己训练的时候没有用测试集,其实作者是用了测试集的,最后输出的结果(就是你发的最上面那三张图)不是你训练集训练得到的精度,而是用测试集(准确的说应该叫验证集)测试得到的精度,而非训练精度,训练精度在300个epoch的时候已经快到100%了。你可以仔细读一下train那部分的代码就明白了。 具体调参的话,可以改一下band_patch, epoch, 以及学习率,就每个参数都试一试! 不知道我有没有说清楚,希望能给你带来帮助!祝好!

非常感谢!非常感谢!谢谢啦!

modexiangan commented 6 months ago

@mx5518 前辈您好,打扰您了,请问您知道老师这个spectralFormer怎么显示最后的分类图嘛,我看过老师之前的解释,我没有太看明白

modexiangan commented 5 months ago

@chanrunz 前辈您好,我现在跑通老师这个程序,但是没有显示分类图,请问您是怎么去将这个分类结果图进行显示的