Test(指标计算)

T e s t ( 指 标 计 算 ) Test(指标计算) Test

import torch
import torch.nn.functional as F
from torch.utils.data import DataLoader
from major_evalution import eval_semantic_segmentation
from major_dataset import LoadDataset
from major_models import FCN
import major_config

# 批次大小
BATCH_SIZE = 1
# 初始化指标
miou_list = [0]
fwiou_list =[0]
# 数据读取
Load_test = LoadDataset([major_config.test_image, major_config.test_label], major_config.crop_size)
test_data = DataLoader(Load_test, batch_size=BATCH_SIZE, shuffle=True)
# 模型读入
net = major_config.model
net.eval()
net.to(major_config.device)
net.load_state_dict(torch.load(major_config.path_test_model))

# 指标初始化
train_pa = 0
train_mpa = 0
train_miou = 0
train_fwiou = 0

error = 0

for i, sample in enumerate(test_data):
        data = sample['img'].to(major_config.device)
        label = sample['label'].to(major_config.device)
        out = net(data)
        out = F.log_softmax(out, dim=1)

        pre_label = out.max(dim=1)[1].data.cpu().numpy()
        pre_label = [i for i in pre_label]

        true_label = label.data.cpu().numpy()
        true_label = [i for i in true_label]

        eval_metrix = eval_semantic_segmentation(pre_label, true_label)
        train_pa = eval_metrix['pa'] + train_pa
        train_mpa = eval_metrix['mpa'] + train_mpa
        train_miou = eval_metrix['miou'] + train_miou
        train_fwiou = eval_metrix['fwiou'] + train_fwiou

# 定义打印格式
epoch_str = ('test_pa :{:.5f} ,test_mpa:{:.5f}, test_miou:{:.5f}, test_fwiou :{:}'.format(train_pa /len(test_data),
															                              train_mpa/len(test_data),
																						  train_miou/len(test_data),
															                              train_fwiou/len(test_data)
																						  ))
# if train_miou/(len(test_data)) > max(miou_list):
# 	miou_list.append(train_miou/len(test_data))
# 	print(epoch_str+'==========last')

if train_fwiou/(len(test_data)) > max(fwiou_list):
        fwiou_list.append(train_fwiou/len(test_data))
        print(epoch_str)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值