Open pengzinuo opened 6 months ago
如果作者能帮我解决这个问题,我将不胜感激,谢谢作者!!!
Hi, your test results seem to be abnormal. Yes, we use cpu for loading model weights. However, this does not have a disproportionate impact. Our test results are as follows: Or check the generated '.npy' file from data preprocessing.
作者您好,我按照你说的去检查了isic2017生成npy的文件,并且打印了测试集的图片,并没有发现我的dataset有问题,npy文件是完好的,测试还是出现效果很不达标,我也不清楚具体怎么办,您还有好的建议可以帮我解决一下这个问题吗,谢谢作者的慷慨指导
作者可以提供一下您的npy文件吗 麻烦作者您了
Maybe you can try to validate the training weights externally on the PH2 dataset. In our experiments, the PH2 dataset was all tested as external validation. This helps to rule out if the effect is due to different servers, or suggests that you re-preprocess the data.
作者可以提供一下您的npy文件吗 麻烦作者您了
你好,能提供一个联系方式吗,我有些问题想要问你。
原因可能出在文件Prepare_ISIC2017.py。Tr_list = glob.glob(Dataset_add+ Tr_add+'/*.jpg')
这个语句它生成一个list,其中包含所有文件的路径。但是这个路径里面文件的排列顺序可能会不同。
glob.glob() 函数返回的列表中的元素顺序通常是按照文件系统中的顺序排列的,但这不是绝对的。具体的排序方式可能受到操作系统、文件系统以及文件名的影响。在某些情况下,可能会按照字母顺序排列,而在其他情况下可能会按照文件系统内部的存储顺序排列。
这是我服务器上所生成的顺序。
这是我dian电脑上所生成的顺序。
也就是说,每个人之后生成的Data_train_2017和Label_train_2017顺序都不同。而最终程序划分了前1250作为训练,150作为验证集,600作为测试集,自然而然这几个.npy文件里边的文件内容顺序到底是怎样的,谁也说不清楚。我猜测这也是作者的权重在其他人的测试集上跑出来不对劲的原因,希望作者公布Test_img.npy和Test_mask.npy。
我可视化(前20张)了两次生成的Test_img.npy发现完全不同
作者可以提供一下您的npy文件吗 麻烦作者您了
你好,能提供一个联系方式吗,我有些问题想要问你。
这是我的qq号1215795027,微信号是这个gzwivly,可以加我,
原因可能出在文件Prepare_ISIC2017.py。
Tr_list = glob.glob(Dataset_add+ Tr_add+'/*.jpg')
这个语句它生成一个list,其中包含所有文件的路径。但是这个路径里面文件的排列顺序可能会不同。 glob.glob() 函数返回的列表中的元素顺序通常是按照文件系统中的顺序排列的,但这不是绝对的。具体的排序方式可能受到操作系统、文件系统以及文件名的影响。在某些情况下,可能会按照字母顺序排列,而在其他情况下可能会按照文件系统内部的存储顺序排列。 这是我服务器上所生成的顺序。 这是我dian电脑上所生成的顺序。 也就是说,每个人之后生成的Data_train_2017和Label_train_2017顺序都不同。而最终程序划分了前1250作为训练,150作为验证集,600作为测试集,自然而然这几个.npy文件里边的文件内容顺序到底是怎样的,谁也说不清楚。我猜测这也是作者的权重在其他人的测试集上跑出来不对劲的原因,希望作者公布Test_img.npy和Test_mask.npy。 我可视化(前20张)了两次生成的Test_img.npy发现完全不同
牛逼哥们,我说我不同服务器结果玩什么不一样,不过可以这样直接提前在文件夹里面划分好,不用那个函数了,我看isic2017数据集提供了测试集,可以2000张图片都训练
作者您好,在我测试数据集isic2017过程中,拿以前的模型权重却发现和以前达到的效果不一样,我发现您放在了cpu上,我去掉这个,效果有提升,但还是不如之前 首先我检查了模型参数是否匹配 odict_keys(['module.encoder1.0.weight', 'module.encoder1.0.bias', 'module.encoder2.0.weight', 'module.encoder2.0.bias', 'module.encoder3.0.weight', 'module.encoder3.0.bias', 'module.encoder4.0.skip_scale', 'module.encoder4.0.norm.weight', 'module.encoder4.0.norm.bias', 'module.encoder4.0.mamba.A_log', 'module.encoder4.0.mamba.D', 'module.encoder4.0.mamba.in_proj.weight', 'module.encoder4.0.mamba.conv1d.weight', 'module.encoder4.0.mamba.conv1d.bias', 'module.encoder4.0.mamba.x_proj.weight', 'module.encoder4.0.mamba.dt_proj.weight', 'module.encoder4.0.mamba.dt_proj.bias', 'module.encoder4.0.mamba.out_proj.weight', 'module.encoder4.0.proj.weight', 'module.encoder4.0.proj.bias', 'module.encoder5.0.skip_scale', 'module.encoder5.0.norm.weight', 'module.encoder5.0.norm.bias', 'module.encoder5.0.mamba.A_log', 'module.encoder5.0.mamba.D', 'module.encoder5.0.mamba.in_proj.weight', 'module.encoder5.0.mamba.conv1d.weight', 'module.encoder5.0.mamba.conv1d.bias', 'module.encoder5.0.mamba.x_proj.weight', 'module.encoder5.0.mamba.dt_proj.weight', 'module.encoder5.0.mamba.dt_proj.bias', 'module.encoder5.0.mamba.out_proj.weight', 'module.encoder5.0.proj.weight', 'module.encoder5.0.proj.bias', 'module.encoder6.0.skip_scale', 'module.encoder6.0.norm.weight', 'module.encoder6.0.norm.bias', 'module.encoder6.0.mamba.A_log', 'module.encoder6.0.mamba.D', 'module.encoder6.0.mamba.in_proj.weight', 'module.encoder6.0.mamba.conv1d.weight', 'module.encoder6.0.mamba.conv1d.bias', 'module.encoder6.0.mamba.x_proj.weight', 'module.encoder6.0.mamba.dt_proj.weight', 'module.encoder6.0.mamba.dt_proj.bias', 'module.encoder6.0.mamba.out_proj.weight', 'module.encoder6.0.proj.weight', 'module.encoder6.0.proj.bias', 'module.scab.catt.get_all_att.weight', 'module.scab.catt.att1.weight', 'module.scab.catt.att1.bias', 'module.scab.catt.att2.weight', 'module.scab.catt.att2.bias', 'module.scab.catt.att3.weight', 'module.scab.catt.att3.bias', 'module.scab.catt.att4.weight', 'module.scab.catt.att4.bias', 'module.scab.catt.att5.weight', 'module.scab.catt.att5.bias', 'module.scab.satt.shared_conv2d.0.weight', 'module.scab.satt.shared_conv2d.0.bias', 'module.decoder1.0.skip_scale', 'module.decoder1.0.norm.weight', 'module.decoder1.0.norm.bias', 'module.decoder1.0.mamba.A_log', 'module.decoder1.0.mamba.D', 'module.decoder1.0.mamba.in_proj.weight', 'module.decoder1.0.mamba.conv1d.weight', 'module.decoder1.0.mamba.conv1d.bias', 'module.decoder1.0.mamba.x_proj.weight', 'module.decoder1.0.mamba.dt_proj.weight', 'module.decoder1.0.mamba.dt_proj.bias', 'module.decoder1.0.mamba.out_proj.weight', 'module.decoder1.0.proj.weight', 'module.decoder1.0.proj.bias', 'module.decoder2.0.skip_scale', 'module.decoder2.0.norm.weight', 'module.decoder2.0.norm.bias', 'module.decoder2.0.mamba.A_log', 'module.decoder2.0.mamba.D', 'module.decoder2.0.mamba.in_proj.weight', 'module.decoder2.0.mamba.conv1d.weight', 'module.decoder2.0.mamba.conv1d.bias', 'module.decoder2.0.mamba.x_proj.weight', 'module.decoder2.0.mamba.dt_proj.weight', 'module.decoder2.0.mamba.dt_proj.bias', 'module.decoder2.0.mamba.out_proj.weight', 'module.decoder2.0.proj.weight', 'module.decoder2.0.proj.bias', 'module.decoder3.0.skip_scale', 'module.decoder3.0.norm.weight', 'module.decoder3.0.norm.bias', 'module.decoder3.0.mamba.A_log', 'module.decoder3.0.mamba.D', 'module.decoder3.0.mamba.in_proj.weight', 'module.decoder3.0.mamba.conv1d.weight', 'module.decoder3.0.mamba.conv1d.bias', 'module.decoder3.0.mamba.x_proj.weight', 'module.decoder3.0.mamba.dt_proj.weight', 'module.decoder3.0.mamba.dt_proj.bias', 'module.decoder3.0.mamba.out_proj.weight', 'module.decoder3.0.proj.weight', 'module.decoder3.0.proj.bias', 'module.decoder4.0.weight', 'module.decoder4.0.bias', 'module.decoder5.0.weight', 'module.decoder5.0.bias', 'module.ebn1.weight', 'module.ebn1.bias', 'module.ebn2.weight', 'module.ebn2.bias', 'module.ebn3.weight', 'module.ebn3.bias', 'module.ebn4.weight', 'module.ebn4.bias', 'module.ebn5.weight', 'module.ebn5.bias', 'module.dbn1.weight', 'module.dbn1.bias', 'module.dbn2.weight', 'module.dbn2.bias', 'module.dbn3.weight', 'module.dbn3.bias', 'module.dbn4.weight', 'module.dbn4.bias', 'module.dbn5.weight', 'module.dbn5.bias', 'module.final.weight', 'module.final.bias'])
odict_keys(['module.encoder1.0.weight', 'module.encoder1.0.bias', 'module.encoder2.0.weight', 'module.encoder2.0.bias', 'module.encoder3.0.weight', 'module.encoder3.0.bias', 'module.encoder4.0.skip_scale', 'module.encoder4.0.norm.weight', 'module.encoder4.0.norm.bias', 'module.encoder4.0.mamba.A_log', 'module.encoder4.0.mamba.D', 'module.encoder4.0.mamba.in_proj.weight', 'module.encoder4.0.mamba.conv1d.weight', 'module.encoder4.0.mamba.conv1d.bias', 'module.encoder4.0.mamba.x_proj.weight', 'module.encoder4.0.mamba.dt_proj.weight', 'module.encoder4.0.mamba.dt_proj.bias', 'module.encoder4.0.mamba.out_proj.weight', 'module.encoder4.0.proj.weight', 'module.encoder4.0.proj.bias', 'module.encoder5.0.skip_scale', 'module.encoder5.0.norm.weight', 'module.encoder5.0.norm.bias', 'module.encoder5.0.mamba.A_log', 'module.encoder5.0.mamba.D', 'module.encoder5.0.mamba.in_proj.weight', 'module.encoder5.0.mamba.conv1d.weight', 'module.encoder5.0.mamba.conv1d.bias', 'module.encoder5.0.mamba.x_proj.weight', 'module.encoder5.0.mamba.dt_proj.weight', 'module.encoder5.0.mamba.dt_proj.bias', 'module.encoder5.0.mamba.out_proj.weight', 'module.encoder5.0.proj.weight', 'module.encoder5.0.proj.bias', 'module.encoder6.0.skip_scale', 'module.encoder6.0.norm.weight', 'module.encoder6.0.norm.bias', 'module.encoder6.0.mamba.A_log', 'module.encoder6.0.mamba.D', 'module.encoder6.0.mamba.in_proj.weight', 'module.encoder6.0.mamba.conv1d.weight', 'module.encoder6.0.mamba.conv1d.bias', 'module.encoder6.0.mamba.x_proj.weight', 'module.encoder6.0.mamba.dt_proj.weight', 'module.encoder6.0.mamba.dt_proj.bias', 'module.encoder6.0.mamba.out_proj.weight', 'module.encoder6.0.proj.weight', 'module.encoder6.0.proj.bias', 'module.scab.catt.get_all_att.weight', 'module.scab.catt.att1.weight', 'module.scab.catt.att1.bias', 'module.scab.catt.att2.weight', 'module.scab.catt.att2.bias', 'module.scab.catt.att3.weight', 'module.scab.catt.att3.bias', 'module.scab.catt.att4.weight', 'module.scab.catt.att4.bias', 'module.scab.catt.att5.weight', 'module.scab.catt.att5.bias', 'module.scab.satt.shared_conv2d.0.weight', 'module.scab.satt.shared_conv2d.0.bias', 'module.decoder1.0.skip_scale', 'module.decoder1.0.norm.weight', 'module.decoder1.0.norm.bias', 'module.decoder1.0.mamba.A_log', 'module.decoder1.0.mamba.D', 'module.decoder1.0.mamba.in_proj.weight', 'module.decoder1.0.mamba.conv1d.weight', 'module.decoder1.0.mamba.conv1d.bias', 'module.decoder1.0.mamba.x_proj.weight', 'module.decoder1.0.mamba.dt_proj.weight', 'module.decoder1.0.mamba.dt_proj.bias', 'module.decoder1.0.mamba.out_proj.weight', 'module.decoder1.0.proj.weight', 'module.decoder1.0.proj.bias', 'module.decoder2.0.skip_scale', 'module.decoder2.0.norm.weight', 'module.decoder2.0.norm.bias', 'module.decoder2.0.mamba.A_log', 'module.decoder2.0.mamba.D', 'module.decoder2.0.mamba.in_proj.weight', 'module.decoder2.0.mamba.conv1d.weight', 'module.decoder2.0.mamba.conv1d.bias', 'module.decoder2.0.mamba.x_proj.weight', 'module.decoder2.0.mamba.dt_proj.weight', 'module.decoder2.0.mamba.dt_proj.bias', 'module.decoder2.0.mamba.out_proj.weight', 'module.decoder2.0.proj.weight', 'module.decoder2.0.proj.bias', 'module.decoder3.0.skip_scale', 'module.decoder3.0.norm.weight', 'module.decoder3.0.norm.bias', 'module.decoder3.0.mamba.A_log', 'module.decoder3.0.mamba.D', 'module.decoder3.0.mamba.in_proj.weight', 'module.decoder3.0.mamba.conv1d.weight', 'module.decoder3.0.mamba.conv1d.bias', 'module.decoder3.0.mamba.x_proj.weight', 'module.decoder3.0.mamba.dt_proj.weight', 'module.decoder3.0.mamba.dt_proj.bias', 'module.decoder3.0.mamba.out_proj.weight', 'module.decoder3.0.proj.weight', 'module.decoder3.0.proj.bias', 'module.decoder4.0.weight', 'module.decoder4.0.bias', 'module.decoder5.0.weight', 'module.decoder5.0.bias', 'module.ebn1.weight', 'module.ebn1.bias', 'module.ebn2.weight', 'module.ebn2.bias', 'module.ebn3.weight', 'module.ebn3.bias', 'module.ebn4.weight', 'module.ebn4.bias', 'module.ebn5.weight', 'module.ebn5.bias', 'module.dbn1.weight', 'module.dbn1.bias', 'module.dbn2.weight', 'module.dbn2.bias', 'module.dbn3.weight', 'module.dbn3.bias', 'module.dbn4.weight', 'module.dbn4.bias', 'module.dbn5.weight', 'module.dbn5.bias', 'module.final.weight', 'module.final.bias'])
Model weights loaded successfully. Parameter module.encoder1.0.weight matches. Parameter module.encoder1.0.bias matches. Parameter module.encoder2.0.weight matches. Parameter module.encoder2.0.bias matches. Parameter module.encoder3.0.weight matches. Parameter module.encoder3.0.bias matches. Parameter module.encoder4.0.skip_scale matches. Parameter module.encoder4.0.norm.weight matches. Parameter module.encoder4.0.norm.bias matches. Parameter module.encoder4.0.mamba.A_log matches. Parameter module.encoder4.0.mamba.D matches. Parameter module.encoder4.0.mamba.in_proj.weight matches. Parameter module.encoder4.0.mamba.conv1d.weight matches. Parameter module.encoder4.0.mamba.conv1d.bias matches. Parameter module.encoder4.0.mamba.x_proj.weight matches. Parameter module.encoder4.0.mamba.dt_proj.weight matches. Parameter module.encoder4.0.mamba.dt_proj.bias matches. Parameter module.encoder4.0.mamba.out_proj.weight matches. Parameter module.encoder4.0.proj.weight matches. Parameter module.encoder4.0.proj.bias matches. Parameter module.encoder5.0.skip_scale matches. Parameter module.encoder5.0.norm.weight matches. Parameter module.encoder5.0.norm.bias matches. Parameter module.encoder5.0.mamba.A_log matches. Parameter module.encoder5.0.mamba.D matches. Parameter module.encoder5.0.mamba.in_proj.weight matches. Parameter module.encoder5.0.mamba.conv1d.weight matches. Parameter module.encoder5.0.mamba.conv1d.bias matches. Parameter module.encoder5.0.mamba.x_proj.weight matches. Parameter module.encoder5.0.mamba.dt_proj.weight matches. Parameter module.encoder5.0.mamba.dt_proj.bias matches. Parameter module.encoder5.0.mamba.out_proj.weight matches. Parameter module.encoder5.0.proj.weight matches. Parameter module.encoder5.0.proj.bias matches. Parameter module.encoder6.0.skip_scale matches. Parameter module.encoder6.0.norm.weight matches. Parameter module.encoder6.0.norm.bias matches. Parameter module.encoder6.0.mamba.A_log matches. Parameter module.encoder6.0.mamba.D matches. Parameter module.encoder6.0.mamba.in_proj.weight matches. Parameter module.encoder6.0.mamba.conv1d.weight matches. Parameter module.encoder6.0.mamba.conv1d.bias matches. Parameter module.encoder6.0.mamba.x_proj.weight matches. Parameter module.encoder6.0.mamba.dt_proj.weight matches. Parameter module.encoder6.0.mamba.dt_proj.bias matches. Parameter module.encoder6.0.mamba.out_proj.weight matches. Parameter module.encoder6.0.proj.weight matches. Parameter module.encoder6.0.proj.bias matches. Parameter module.scab.catt.get_all_att.weight matches. Parameter module.scab.catt.att1.weight matches. Parameter module.scab.catt.att1.bias matches. Parameter module.scab.catt.att2.weight matches. Parameter module.scab.catt.att2.bias matches. Parameter module.scab.catt.att3.weight matches. Parameter module.scab.catt.att3.bias matches. Parameter module.scab.catt.att4.weight matches. Parameter module.scab.catt.att4.bias matches. Parameter module.scab.catt.att5.weight matches. Parameter module.scab.catt.att5.bias matches. Parameter module.scab.satt.shared_conv2d.0.weight matches. Parameter module.scab.satt.shared_conv2d.0.bias matches. Parameter module.decoder1.0.skip_scale matches. Parameter module.decoder1.0.norm.weight matches. Parameter module.decoder1.0.norm.bias matches. Parameter module.decoder1.0.mamba.A_log matches. Parameter module.decoder1.0.mamba.D matches. Parameter module.decoder1.0.mamba.in_proj.weight matches. Parameter module.decoder1.0.mamba.conv1d.weight matches. Parameter module.decoder1.0.mamba.conv1d.bias matches. Parameter module.decoder1.0.mamba.x_proj.weight matches. Parameter module.decoder1.0.mamba.dt_proj.weight matches. Parameter module.decoder1.0.mamba.dt_proj.bias matches. Parameter module.decoder1.0.mamba.out_proj.weight matches. Parameter module.decoder1.0.proj.weight matches. Parameter module.decoder1.0.proj.bias matches. Parameter module.decoder2.0.skip_scale matches. Parameter module.decoder2.0.norm.weight matches. Parameter module.decoder2.0.norm.bias matches. Parameter module.decoder2.0.mamba.A_log matches. Parameter module.decoder2.0.mamba.D matches. Parameter module.decoder2.0.mamba.in_proj.weight matches. Parameter module.decoder2.0.mamba.conv1d.weight matches. Parameter module.decoder2.0.mamba.conv1d.bias matches. Parameter module.decoder2.0.mamba.x_proj.weight matches. Parameter module.decoder2.0.mamba.dt_proj.weight matches. Parameter module.decoder2.0.mamba.dt_proj.bias matches. Parameter module.decoder2.0.mamba.out_proj.weight matches. Parameter module.decoder2.0.proj.weight matches. Parameter module.decoder2.0.proj.bias matches. Parameter module.decoder3.0.skip_scale matches. Parameter module.decoder3.0.norm.weight matches. Parameter module.decoder3.0.norm.bias matches. Parameter module.decoder3.0.mamba.A_log matches. Parameter module.decoder3.0.mamba.D matches. Parameter module.decoder3.0.mamba.in_proj.weight matches. Parameter module.decoder3.0.mamba.conv1d.weight matches. Parameter module.decoder3.0.mamba.conv1d.bias matches. Parameter module.decoder3.0.mamba.x_proj.weight matches. Parameter module.decoder3.0.mamba.dt_proj.weight matches. Parameter module.decoder3.0.mamba.dt_proj.bias matches. Parameter module.decoder3.0.mamba.out_proj.weight matches. Parameter module.decoder3.0.proj.weight matches. Parameter module.decoder3.0.proj.bias matches. Parameter module.decoder4.0.weight matches. Parameter module.decoder4.0.bias matches. Parameter module.decoder5.0.weight matches. Parameter module.decoder5.0.bias matches. Parameter module.ebn1.weight matches. Parameter module.ebn1.bias matches. Parameter module.ebn2.weight matches. Parameter module.ebn2.bias matches. Parameter module.ebn3.weight matches. Parameter module.ebn3.bias matches. Parameter module.ebn4.weight matches. Parameter module.ebn4.bias matches. Parameter module.ebn5.weight matches. Parameter module.ebn5.bias matches. Parameter module.dbn1.weight matches. Parameter module.dbn1.bias matches. Parameter module.dbn2.weight matches. Parameter module.dbn2.bias matches. Parameter module.dbn3.weight matches. Parameter module.dbn3.bias matches. Parameter module.dbn4.weight matches. Parameter module.dbn4.bias matches. Parameter module.dbn5.weight matches. Parameter module.dbn5.bias matches. Parameter module.final.weight matches. Parameter module.final.bias matches. Model weights match. 我匹配了 原来结果是: 2024-04-24 20:15:18 - test of best model, loss: 0.2915,miou: 0.7798316090075763, f1_or_dsc: 0.8762981903017284, accuracy: 0.9633194732666016, specificity: 0.9808625097235345, sensitivity: 0.8641748429930506, confusion_matrix: [[32770537 639382][ 802955 5108726]] 现在再一次加载测试(models/best-epoch104-loss0.2678.pth),结果是: test of best model, loss: 0.3700,miou: 0.7395731743810359, f1_or_dsc: 0.8502926870485759, accuracy: 0.9572845458984375, specificity: 0.9839004398663762, sensitivity: 0.8068645787890111, confusion_matrix: [[32872034 537885] [ 1141755 4769926]] 我拿你给出的权重(UltraLight_VM_UNet.pth)去测试得到的结果是: test of best model, loss: 0.5090,miou: 0.6089312019839543, f1_or_dsc: 0.756938769330955, accuracy: 0.9171144612630209, specificity: 0.927495125025595, sensitivity: 0.858448045488246, confusion_matrix: [[30987537 2422382] [ 836810 5074871]]