首页 > 其他分享 >c测试

c测试

时间:2023-12-10 22:22:06浏览次数:43  
标签:acc self labels top1 测试 print total

    def eval(self, phase='val', openset=False):
        print("Enter eval")
        print_str = ['Phase: %s' % (phase)]
        print_write(print_str, self.log_file)  # Phase: test
        time.sleep(0.25)  # 暂停程序执行0.25秒,以便给打印输出留出时间。

        if openset:  # 检查是否处于openset测试模式
            print('Under openset test mode. Open threshold is %.1f'
                  % self.training_opt['open_threshold'])

        torch.cuda.empty_cache()  # 清空GPU缓存,以释放内存。

        # In validation or testing mode, set model to eval() and initialize running loss/correct
        for model in self.networks.values():
            model.eval()

        # 创建一个空的张量,用于存储所有样本的预测logits,labels,paths。
        self.total_logits = torch.empty((0, self.training_opt['num_classes'])).to(self.device)
        self.total_labels = torch.empty(0, dtype=torch.long).to(self.device)
        self.total_paths = np.empty(0)

        # Iterate over dataset
        # 对数据集中的每个样本执行以下操作,并使用tqdm库显示进度条:
        for inputs, labels, paths in tqdm(self.data[phase]):
            inputs, labels = inputs.to(self.device), labels.to(self.device)
            # print(labels)
            # If on training phase, enable gradients
            with torch.set_grad_enabled(False):  # 不计算梯度

                # In validation or testing
                self.batch_forward(inputs,
                                   labels,
                                   centroids=self.memory['centroids'],
                                   phase=phase)

                # 将当前样本的x连接到张量x中
                self.total_logits = torch.cat((self.total_logits, self.logits))
                self.total_labels = torch.cat((self.total_labels, labels))
                self.total_paths = np.concatenate((self.total_paths, paths))

        # 对self.total_logits张量进行softmax操作,并获取每个样本的概率和预测结果。
        probs, preds = F.softmax(self.total_logits.detach(), dim=1).max(dim=1)

        if openset:  # 处于openset测试模式
            # 将概率低于开放阈值的样本的预测结果设置为 - 1。
            preds[probs < self.training_opt['open_threshold']] = -1
            self.openset_acc = mic_acc_cal(preds[self.total_labels == -1],
                                           self.total_labels[self.total_labels == -1])
            print('\n\nOpenset Accuracy: %.3f' % self.openset_acc)

        # Calculate the overall accuracy and F measurement
        # 计算总体准确率。
        self.eval_acc_mic_top1 = mic_acc_cal(preds[self.total_labels != -1],
                                             self.total_labels[self.total_labels != -1])
        # 计算F度量值。
        self.eval_f_measure = F_measure(preds, self.total_labels, openset=openset,
                                        theta=self.training_opt['open_threshold'])

        # 计算多样本准确率、中等样本准确率和少样本准确率。
        self.many_acc_top1, \
        self.median_acc_top1, \
        self.low_acc_top1 = shot_acc(preds[self.total_labels != -1],
                                     self.total_labels[self.total_labels != -1],
                                     self.data['train'])
        # Top-1 accuracy and additional string
        # format:
        #  Phase: val
        #  总体准确率Evaluation_accuracy_micro_top1: 0.011
        #  计算F度量值Averaged F-measure: 0.002
        #  多中少样本准确率Many_shot_accuracy_top1: 0.029 Median_shot_accuracy_top1: 0.000 Low_shot_accuracy_top1: 0.000
        print_str = ['\n\n',
                     'Phase: %s'
                     % (phase),
                     '\n\n',
                     '总体准确率(Evaluation_accuracy_micro_top1): %.3f'
                     % (self.eval_acc_mic_top1),
                     '\n',
                     '计算F度量值(Averaged F-measure): %.3f'
                     % (self.eval_f_measure),
                     '\n',
                     '多样本准确率(Many_shot_accuracy_top1): %.3f'
                     % (self.many_acc_top1),
                     '中等样本准确率(Median_shot_accuracy_top1): %.3f'
                     % (self.median_acc_top1),
                     '少样本准确率(Low_shot_accuracy_top1): %.3f'
                     % (self.low_acc_top1),
                     '\n']

        if phase == 'val':
            print_write(print_str, self.log_file)
        else:
            print(*print_str)

标签:acc,self,labels,top1,测试,print,total
From: https://www.cnblogs.com/ZarkY/p/17893363.html

相关文章

  • Qt6 c++教程9测试&调试
    9测试&调试调试和测试是软件开发的重要组成部分。在本章中,你将学习如何调试Qt项目、不同的调试技术以及Qt支持的调试器。调试是发现错误或不希望出现的行为的根本原因并加以解决的过程。我们还将讨论使用QtTest框架进行单元测试。QtTest是基于Qt的应用程序和库的单元测试......
  • tryhackme进攻性渗透测试-Advanced Exploitation 高级利用
    SteelMountain侦察Nmap-sC-sV-O$IP-oNbasic_scan.nmapNmap-script=vuln$IP-oNvuln_scan.nmap总之,masscan在eth0上工作,所以SYN端口探测技术全部没有响应包需要一个flag把探测流量正确的打入tun0中masscan-p808010.10.205.233-etun0nmap除了使用SYN端口......
  • 代码 测试用例 测试结果 测试结果 24. 两两交换链表中的节点
    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提示:链表中节点的数目在范围 [0,100] 内......
  • Python神器!WEB自动化测试集成工具 DrissionPage
    Python神器!WEB自动化测试集成工具DrissionPage 一、前言用requests做数据采集面对要登录的网站时,要分析数据包、JS源码,构造复杂的请求,往往还要应付验证码、JS混淆、签名参数等反爬手段,门槛较高。若数据是由JS计算生成的,还须重现计算过程,体验不好,开发效率不高。使用浏览器,......
  • 读程序员的README笔记06_测试(上)
    1. 行为准则2. 编写、运行和修复测试用例会让人感觉很忙碌2.1. 测试本身才更容易成为繁忙的工作2.2. 糟糕的测试会增加开发人员的开销而不提供价值,并且还会增加测试套件的不稳定性3. 测试用途3.1. 测试可以检查代码是否正常工作3.1.1. 测试本身就可以验证软件的行......
  • 渗透测试第三次实验
    利用Wiresharks抓包qq图片首先向qq某位联系人发送一张图片,这里有一个很坑的点就是使用QQNT版本无法抓包,所以可以去官网下载旧版qq来抓包 之后打开wireshark,我们知道qq在应用层使用的是OICQ协议,但是信息传输使用的是TCP协议,我们追踪TCP流,并搜索图片头FFD8 打开追踪tcp流,......
  • MFC CListVtrl 控件简单测试
    ▲样式Demo关联控件变量m_CList,在属性中将视图(View)设置成Report(报表)模式。在BOOLCMFCApplication4LlisBoxDlg::OnInitDialog()初始化函数中添加测试代码://TODO:在此添加额外的初始化代码//m_CList.SetView(1);//视图View要改成Report报表模式//设置风格样......
  • 进程间通信-信号-pipe-fifo(课上测试)
    一.运行结果二.代码说明consumer.c该程序是一个使用FIFO(命名管道)进行进程间通信的示例。首先定义了FIFO的名称和缓冲区的大小。然后在主函数中,打开了一个以只读方式打开的FIFO,并读取FIFO中的数据直到读取完毕,最后关闭FIFO。相关系统调用说明:1.open:打开FIFO文件,返回文......
  • 黑盒测试用例设计方法--等价类划分法
    概念某个输入域的集合,在这个集合中每个输入条件都是等效的。如果其中一个输入并不能导致问题发生,那么集合中其他输入条件进行测试也不可能发生错误。有效等价类:有效等价类是程序规格说明有意义,合理的输入数据无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据等价......
  • 测试入门
     测试入门(01):一篇文章带你彻底理解测试基础测试入门(02):软件测试模型测试入门(03):测试流程测试入门(04):测试计划、方案测试入门(05):测试用例要素及其设计方法测试入门(06):bug要素及其生命周期测试入门(07):测试报告......