Closed tarxs closed 4 months ago
你好,请提供一下运行代码部分
---- 回复的原邮件 ---- | 发件人 | @.> | | 发送日期 | 2024年06月12日 10:26 | | 收件人 | Caoxuheng/HIFtool @.> | | 抄送人 | Subscribed @.***> | | 主题 | [Caoxuheng/HIFtool] 关于Network_eval.py (Issue #2) |
你好,昨天我用chikusei数据集训练了PSRT,PSNR是正常的,50多。但是使用Network_eval.py测试的时候,无论用的是from utils import PSNR_GPU还是imgvision,计算出的PSNR都是5左右,请问是怎么回事
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
改了的地方: Network_training.py:
case_lst = ['model', 'unsupervised', 'supervised']
case = case_lst[2]
Fusion = ModeSelection(case)
Method = 'PSRT'
model, opt = model_generator(Method)
dataset_name = 'chikusei'
model_folder = Method + '/' + dataset_name + '/'
Network_eval.py:
if __name__=='__main__':
from torch.utils.data import DataLoader
from Dataloader_tool import QBDataset
from Dataloader_tool import ChikuseiDataset
from Dataloader_tool import PaviaDataset
from Dataloader_tool import XionganDataset
# Build Network
Method = 'PSRT'
model, opt = model_generator(Method, 'cuda')
# Dataset Setting
dataset_name = 'chikusei'
model_folder = Method + '/' + dataset_name + '/'
# Training Setting
Batch_size = 1
start = 2000
test_data = ChikuseiDataset(f'Multispectral Image Dataset\{dataset_name}\{dataset_name}.mat', type='test')
test_data_loader = DataLoader(dataset=test_data, num_workers=0, batch_size=Batch_size, shuffle=False,
pin_memory=True, drop_last=False)
output_HRHSI = Eva(model, test_data_loader, model_folder=model_folder, start_epoch=start, name=Method)
其他部分都没有动
可能是由于数据动态范围不一致导致的,可以尝试把30~32行的归一化操作去除。
30 # GT /=GT.max()
31 # LRHSI /=LRHSI.max()
32 # HRMSI /=HRMSI.max()
注释掉就正常了,非常感谢。 再请问一个问题就是
output_HRHSI = output_HRHSI[0].detach().cpu().permute(1, 2, 0).numpy()
print(output_HRHSI.shape)
GT = GT[0].detach().cpu().permute(1, 2, 0).numpy()
iv.spectra_metric(output_HRHSI, GT).Evaluation()
这里是评估的是测试集里的一张图片吧,还是整个测试集,是否应该放在循环里再取平均
是的,这里是对一张重建图像,即output_HRHSI的第0张图像,的评估。imgvision的评价指标暂时不支持以batch为维度的批量评价,如果使用该工具对整个测试集进行评估,目前只能通过循环后取平均实现。 不过,目前公布的遥感图像测试集只包含一张图像,所以截至目前,针对本项目中释放的数据集,这里的评价指标就是对整个测试集的评估。
是的,这里是对一张重建图像,即output_HRHSI的第0张图像,的评估。imgvision的评价指标暂时不支持以batch为维度的批量评价,如果使用该工具对整个测试集进行评估,目前只能通过循环后取平均实现。 不过,目前公布的遥感图像测试集只包含一张图像,所以截至目前,针对本项目中释放的数据集,这里的评价指标就是对整个测试集的评估。
好的,我明白了Pavia、Chikusei、Xiongan数据集的测试集都是一张从大图片上截取的一张小图片。 非常感谢回答我的诸多问题
你的理解是对的。 问题已经解决,如果还有其他问题,请重新发起issue。
你好,昨天我用chikusei数据集训练了PSRT,PSNR是正常的,50多。但是使用Network_eval.py测试的时候,无论用的是from utils import PSNR_GPU还是imgvision,计算出的PSNR都是5左右,请问是怎么回事