首页 > 其他分享 >222

222

时间:2023-12-27 19:11:07浏览次数:27  
标签:opt img dataset path test import 222

import argparse
import logging
import os.path
import sys
import time
from collections import OrderedDict
import torchvision.utils as tvutils

import numpy as np
import torch
from IPython import embed
import lpips
from torchvision import utils as vutils

import options as option
from models import create_model

# sys.path.insert(0, "../../")
import utils as util
from data import create_dataloader, create_dataset
from data.util import bgr2ycbcr
from utils.metrics import *

#### options
parser = argparse.ArgumentParser()
parser.add_argument("-opt", type=str, help="Path to options YMAL file.", default='options/test/refusion.yml')
opt = option.parse(parser.parse_args().opt, is_train=False)

opt = option.dict_to_nonedict(opt)

#### mkdir and logger
util.mkdirs(
    (
        path
        for key, path in opt["path"].items()
        if not key == "experiments_root"
        and "pretrain_model" not in key
        and "resume" not in key
    )
)

# os.systemc
util.setup_logger(
    "base",
    opt["path"]["log"],
    "test_" + opt["name"],
    level=logging.INFO,
    screen=True,
    tofile=True,
)
logger = logging.getLogger("base")
logger.info(option.dict2str(opt))

#### Create test dataset and dataloader
test_loaders = []
for phase, dataset_opt in sorted(opt["datasets"].items()):
    test_set = create_dataset(dataset_opt)
    test_loader = create_dataloader(test_set, dataset_opt)
    logger.info("Number of test images in [{:s}]: {:d}".format(dataset_opt["name"], len(test_set)))
    test_loaders.append(test_loader)

# load pretrained model by default
model = create_model(opt)
device = model.device

sde = util.IRSDE(max_sigma=opt["sde"]["max_sigma"], T=opt["sde"]["T"], schedule=opt["sde"]["schedule"], eps=opt["sde"]["eps"], device=device)
sde.set_model(model.model)
lpips_fn = lpips.LPIPS(net='alex').to(device)

scale = opt['degradation']['scale']

for test_loader in test_loaders:
    test_set_name = test_loader.dataset.opt["name"]  # path opt['']
    logger.info("\nTesting [{:s}]...".format(test_set_name))
    test_start_time = time.time()
    dataset_dir = os.path.join(opt["path"]["results_root"], test_set_name)
    util.mkdir(dataset_dir)


    ssims_1, psnrs_1 = [], []

    for i, test_data in enumerate(test_loader):
        need_GT = False if test_loader.dataset.opt["dataroot_GT"] is None else True
        img_path = test_data["GT_path"][0] if need_GT else test_data["LQ_path"][0]
        img_name = os.path.splitext(os.path.basename(img_path))[0]

        #### input dataset_LQ
        LQ, GT = test_data["LQ"], test_data["GT"]
        noisy_state = sde.noise_state(LQ)

        model.feed_data(noisy_state, LQ, GT)
        pred_img = model.test(sde, save_states=True)

        visuals = model.get_current_visuals()
        SR_img = visuals["Output"]
        GT = visuals["GT"]

        if opt['save_img']:
            save_dir = opt["savepath"]
            save_img_path = os.path.join(save_dir, img_name + ".png")
            print(save_img_path)
            vutils.save_image(SR_img.float(), save_img_path, normalize=True)
        per_ssim_1 = ssim(SR_img, GT).item()
        per_psnr_1 = psnr(SR_img, GT)
        ssims_1.append(per_ssim_1)
        psnrs_1.append(per_psnr_1)
        print(f'\n {img_name} iter processing:{i + 1}   psnr:{per_psnr_1:.4f}  ssim:{per_ssim_1:.4f}', end='',flush=True)

    avg_ssim_1 = np.mean(ssims_1)
    avg_psnr_1 = np.mean(psnrs_1)
    print(f'\navg_psnr:{avg_psnr_1:.4f}  avg_ssim:{avg_ssim_1:.4f} ', end='', flush=True)

 

标签:opt,img,dataset,path,test,import,222
From: https://www.cnblogs.com/yyhappy/p/17931249.html

相关文章

  • LY1099 [ 20230222 CQYC模拟赛 T2 ] 相似序列
    题意给定一个序列。每次询问求两个区间排序后是否只有一个或者没有位置不同。Sol不难想到主席树维护值域。考虑如何判断。注意到当前答案正确,当且仅当值域上两点不同且相邻。维护每个点的哈希值判断即可。Code#include<iostream>#include<algorithm>#include<cstdio......
  • let a={name:'111',age:222} 如果b是空对象,a中的属性都是空,如果b中的属性是空,a中的属
    leta={name:'111',age:222};letb={};//Iterateoverthepropertiesofafor(letpropina){if(a.hasOwnProperty(prop)){//Assignanemptystringtothepropertyinaa[prop]='';}}console.log(a);{name......
  • CF222A Shooshuns and Sequence 题解
    分析这题是一个很水的题,就是对一个序列有$2$种操作方法,一种是对第$K$个数以前的数的第一个进行删除,另一个则是在整个序列后添加这第$K$个数,使得整个序列为同一个数字,显然,后者是无效操作,则只需要判断第$K$个数以后有无与第$K$个不同的数,有则无解,反之有解。若有解,然后再......
  • LeetCode222.完全二叉树的节点个数
    题目描述给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1~2h个节点。示例提交的代......
  • [题解]AT_abc222_f [ABC222F] Expensive Expense
    板子题,模拟赛场切了。思路线段树换根板子题。因为需要求每一个点的答案,所以定义\(dp_i\)表示以\(i\)为根的最长距离。考虑将一个点\(v\)转化为根,树的形态会发生什么变化(假设\(v\)的父亲节点是\(u\))。发现在\(v\)子树中的节点,距离都会减少\(w_{u\tov}\),其它节点......
  • 国产蓝牙PHY6222支持BLE5.2参数特性介绍支持MESH/透传/定位
    特性:封装;QFN32工作电压范围1.8v至3.6v嵌入式buckdc-dc和ldos电池监视器关断电流0.3uA睡眠电流1uA4.7mA的接受电流为3.3V4.7mA的0db的发射功率为3.3vMCU:<60uA/MHz支持ble2mbps协议BLE5.1可兼容BLE5.0支持mash组网传输速率-90dBm125khz传输速率-103dBm温度:-40℃~125......
  • MITK编译错误C2220 mitkLabelSetImageToSurfaceFilter.cpp
    错误 C2220 以下警告被视为错误(编译源文件E:\0_MITK\MITK\Modules\Multilabel\mitkLabelSetImageToSurfaceFilter.cpp)[E:\0_MITK\MITK\SuperBuild\MITK-build\Modules\Multilabel\MitkMultilabel.vcxproj] MITK-build E:\0_MITK\MITK\SuperBuild\ep\include\ITK-5.2\i......
  • 代码随想训练营第十六天(Pyhton)| 104.二叉树的最大深度、 111.二叉树的最小深度、222.完
    104.二叉树的最大深度1、后续遍历递归法classSolution:defmaxDepth(self,root:Optional[TreeNode])->int:ifrootisNone:return0left_depth=self.maxDepth(root.left)#左right_depth=self.maxDepth(root.right)#......
  • 222
    torch.manual_seed(seed)os.environ['PYTHONHASHSEED']=str(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)np.random.seed(seed)random.seed(seed)torch.backends.cudnn.benchmark=Falsetorch.backends.cudnn.deter......
  • 一个高精度24位ADC芯片ADS1222的使用方法及参考电路程序成都控制器定制
    前一段时间,在做单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,物联网,电子产品,软件、APP开发设计定制定做开发项目时,有要求用到24位的高精度ADC,用于对外部信号采集。经查阅,初步获得一款满足要求的芯片:ADS1222,本文......