Torbjorn1997 / IIRP-Net

11 stars 0 forks source link

有关模型 #5

Closed 5ummer23 closed 2 months ago

5ummer23 commented 2 months ago

作者您好,抱歉再次打扰您了,我在使用训练后得到的模型权重时,按照您给的代码修改了模型权重的路径,但是会报下面的错误;除此之外我想用您给出的mind.pt进行验证时,test是可以运行的,但是下面的test_iirp也会报这个错误,而且我训练出的一份模型权重大概是60M,您给出的是mind是1.6m。向您求助是哪里的问题

截屏2024-09-12 11 35 35 截屏2024-09-13 14 31 43 截屏2024-09-13 14 35 55

报错:

截屏2024-09-13 14 36 53
Torbjorn1997 commented 2 months ago

对于不能加载的问题,也许你可以试试以下代码 import torch

checkpoint = torch.load('model/mind.pt') print(checkpoint.keys()) 看看是否有config,我这边的显示结果是 (wtorch1.13) ywen@ywen-Super-Server:/data/modelsaveframe/PIViT-main$ python check.py dict_keys(['config', 'model_state'])

Torbjorn1997 commented 2 months ago

对于模型大小问题,也许是你没使用我们的train的代码的原因? torch.save(model.state_dict(), os.path.join(model_dir, '%04d.pt' % (epoch+1))) 在这里我们只保存了模型的参数,不包括模型的结构信息。通常这种方式下,模型文件较小,因为只包含模型的权重和偏置等参数。

5ummer23 commented 2 months ago

老师我在test_iirp.py代码中模型加载代码改成这样后便可以使用训练后的权重0140进行测试,就是您在代码中注视掉的部分。 我是用您给出的train.py进行训练的

截屏2024-09-13 15 01 09

这样应该没问题了吧 1001726211142_ pic

Torbjorn1997 commented 2 months ago

现在的结果看起来是对的,你可以试试加载我提供的模型试试么?

5ummer23 commented 2 months ago

如果用您注释掉的代码来加载mind.pt进行验证,会报模型结构与加载的模型的状态字典不匹配的错误,是不是保存模型60多m把模型的结构也保存进去了,我用的是您发布的代码中的train.py.看着里面写的也确实只有参数被保存了

截屏2024-09-13 15 30 21
5ummer23 commented 2 months ago
截屏2024-09-13 15 34 50

我仅仅修改过关于train.py文件中有关于torchsummary的部分,我给注释掉了,还修改了创建模型是IIRPNet,您发布代码原始是创建的RPNet,其他倒是没有修改

Torbjorn1997 commented 2 months ago

不好意思,我检查了一下模型,我后续训练出来也是60m,可能是某次消融实验中修改了训练时的代码带来的区别,之前我没注意到这个问题,模型大小和img_size正相关,稍等我确认后再告诉你。

Torbjorn1997 commented 2 months ago

不过你当前训练的结果数值上是没问题的,稍等我确认一下问题

5ummer23 commented 2 months ago

好的老师,我感觉这个倒不会影响什么,而且老师您的代码是我尝试了非常多模型后第一个能在Mind数据集上跑出正常结果的 = =

Torbjorn1997 commented 2 months ago

好的老师,我感觉这个倒不会影响什么,而且老师您的代码是我尝试了非常多模型后第一个能在Mind数据集上跑出正常结果的 = =

hhh,感谢认可,我看看哪里有问题,毕竟可以减少存储空间的占用,还有就是在ii中正常加载我们提供的模型。此外你可以看一下modet的代码,他们的代码我们也拿了很多做对比试验,我们跑起来感觉是没什么问题的。

Torbjorn1997 commented 2 months ago

我仔细确认了一下,我们去年11月1日换了一个训练代码,这可能是导致出现这个问题的原因。如果你需要的话我可以给你提供旧版的训练代码(我忘记是什么原因换掉的了,可能有一些问题)或者我换成新版代码后做消融实验时使用的模型,和论文发布版相比用了不同数量的resblock,可能dice上稍微高点或者低一点。

5ummer23 commented 2 months ago

如果您愿意提供的话,我会非常感激!2438318386@qq.com这是我的邮箱

Torbjorn1997 commented 2 months ago

已发送,后续有时间我会用新的代码重新训练一下模型,尽快更新成可用的模型,感谢你的提醒。

YingYuxinLeah commented 1 month ago

作者打扰了,请问如果方便的话可以重新上传一下可用的模型参数吗?我这边加载您的模型参数时也是会报模型结构与加载的模型的状态字典不匹配的错误。非常感谢

Torbjorn1997 commented 1 month ago

作者打扰了,请问如果方便的话可以重新上传一下可用的模型参数吗?我这边加载您的模型参数时也是会报模型结构与加载的模型的状态字典不匹配的错误。非常感谢

我在本地运行没有遇到这样的问题,最近在忙一些其他的事情可能未必有时间重新训练这个模型,但我尝试了一个解决方法,这在我的本地也能运行出正确的结果同时理论上避开了config问题,你可以尝试一下是否可行,希望这能解决你的问题。

具体来说,我修改了原本的代码: model = vxm.iirp.IIRPNet.load(args.model, device) 将该代码改成了: model = vxm.iirp.IIRPNet(img_size) model.load_state_dict(torch.load(args.model)['model_state'], strict=False)

YingYuxinLeah commented 1 month ago

好的 感谢您的答复