OOD分类项目训练

一、项目地址

GitHub - LooKing9218/UIOS

二、label制作

      将训练、验证、测试数据的分类信息转换入.csv文件中,运行如下脚本即可:

import os
import csv#要读取的训练、验证、测试文件的目录,该文件下保存着以各个类别命名的文件夹和对应的分类图片
root_path=r'/media/*********************/train' 
#类别种类
classes=['cls1','cls2']def get_Write_file_infos(path):# 文件信息列表file_infos_list=[]typeclothes=os.listdir(path)for ii in typeclothes:everyfile=os.path.join(path , ii)for root, dirnames, filenames in os.walk(everyfile):for filename in filenames:file_infos = {}dirname=root#根据自己的需求更改路径地址filename1 ='train/'+ii+'/'+ filename#.split('.jpg')[0]flag = filename1[-1]file_infos["ImageId"] = filename1file_infos["Flag"] = classes.index(ii)#将数据追加字典到列表中file_infos_list.append(file_infos)return file_infos_list#写入csv文件
def write_csv(file_infos_list):with open('train_label.csv','a+',newline='') as csv_file_train:csv_writer = csv.DictWriter(csv_file_train,fieldnames=['ImageId','Flag'])csv_writer.writeheader()for each in file_infos_list:print(each)csv_writer.writerow(each)def main():file_infos_list =get_Write_file_infos(root_path)write_csv(file_infos_list)if __name__ == '__main__':main()print('The End!')

生成情况如下:

三、运行程序

     (1)修改参数文件 utils/config.py

# -*- coding: utf-8 -*-
class DefaultConfig(object):net_work = 'ResUnNet50'num_classes = 2num_epochs = 100batch_size = 256validation_step = 1root = "/media/code/"train_file = "train_label.csv"val_file = "val_label.csv"test_file = "test_label.csv"lr = 1e-4lr_mode = 'poly'momentum = 0.9weight_decay = 1e-4save_model_path = './Model_Saved'.format(net_work,lr)log_dirs = './Logs_Adam_0304'pretrained =True# Falsepretrained_model_path ='/media/code/UIOS-master/Trained/archive/data/99843712' #Nonecuda = 0num_workers = 4use_gpu = Truetrained_model_path = ''predict_fold = 'predict_mask'

(2)运行

   命令:

python train.py

(3)运行界面

四、踩坑记录

问题原因:ValueError: Only one class present in y_true. ROC AUC score is not defined in that case.

解决方法:

     (1)网上看了很多:

              方法1:添加 try-except

        try:epoch_train_auc = metrics.roc_auc_score(labels, outputs)writer.add_scalar('Train/train_auc', float(epoch_train_auc),epoch)print('loss for train : {},{}'.format(loss_train_mean,round(epoch_train_auc,6)))except ValueError:pass

        方法2:DataLoader的参数设置shuffle=True

   train_loader = DataLoader(DatasetCFP(root=args.root,mode='train',data_file=args.train_file,),batch_size=args.batch_size, shuffle=True, pin_memory=True)val_loader = DataLoader(DatasetCFP(root=args.root,mode='val',data_file=args.val_file,),batch_size=args.batch_size, shuffle=True, pin_memory=True)test_loader = DataLoader(DatasetCFP(root=args.root,mode='test',data_file=args.test_file,),batch_size=args.batch_size, shuffle=True, pin_memory=True)

    方法3:增大batch_size

    (2)我的方法:

        其实是我马虎大意

       修改好config.py中的num_classes参数就行了,

       见谅(不好意思~( ̄▽ ̄)~*)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2774210.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

[当人工智能遇上安全] 11.威胁情报实体识别 (2)基于BiGRU-CRF的中文实体识别万字详解

您或许知道,作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案…

HCIA-HarmonyOS设备开发认证V2.0-3.轻量系统内核基础

目录 一、前言二、LiteOS-M系统概述三、内核框架3.1、CMSIS 和 POSIX 整体架构3.2、LiteOS-M内核启动流程 四、内核基础4.1、任务管理4.2、时间管理(待续)4.3、中断管理(待续)4.4、软件定时器(待续) 五、内存管理5.1、静态内存(待续)5.2、动态内存(待续) 六、内核通信机制6.1、…

制作耳机壳的UV树脂和塑料材质哪一个成本更高一些?

总体来说,制作耳机壳的UV树脂的成本可能会略高于塑料材质。 原材料成本:UV树脂通常是通过复杂的合成过程制成的。这些过程不仅需要大量的能源投入,还需要较高水平的技术和设备支持,因此原材料成本较高。相比之下,塑料…

[leetcode] 31. 下一个排列

文章目录 题目描述解题方法两遍扫描java代码复杂度分析 题目描述 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下…

三、设计模式相关理论总结

一、面向对象编程 1.1 概述 简称Object Oriented Program(OOP),指以类或对象作为基础组织单元,遵循封装、继承、多态以及抽象等特性,进行编程。其中面向对象不一定遵循封装、继承、封装和多态等特性,只是前人总结的套路规范&…

交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。

随着社交网络的发展和普及,人们之间的社交模式正在发生着深刻的变革。传统的线下交友方式已经逐渐被线上交友取而代之。而同城交友正是这一趋势的产物,它利用移动互联网的便利性,将同城内的人们连接在一起,打破了时空的限制&#…

洛谷_P5461 赦免战俘_python写法

捋一下这道题的思路,理解了题目的意思之后我们知道这道题一定会用递归。 那递归的出口很简单,矩阵为1x1的时候就是题目所说的不能再细分下去的意思。 问题就在于递归体。 我对于递归体的理解是找到一个普适的规律,这个规律适用于每一次的递归…

10个简单有效的编辑PDF文件工具分享

10个编辑PDF文件工具作为作家、编辑或专业人士,您可能经常发现自己在处理 PDF 文件。无论您是审阅文档、创建报告还是与他人共享工作,拥有一个可靠的 PDF 编辑器供您使用都非常重要。 10个简单适用的编辑PDF文件工具 在本文中,我们将介绍当今…

javaEE - 20( 18000字 Tomcat 和 HTTP 协议入门 -1)

一: HTTP 协议 1.1. HTTP 是什么 HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议. HTTP 诞生与1991年. 目前已经发展为最主流使用的一种应用层协议. 最新的 HTTP 3 版本也正在完善中, 目前 Google / Facebook 等公司的产品已经支持了. HTT…

Onlyfans年龄验证/无法支付等问题解决方案

很多用户在Onlyfans绑卡时,出现了地址、年龄验证、无法支付等各种问题。出现这个问题的原因,一是用国内邮箱注册了,二是绑卡时的IP有问题,会导致出现年龄验证、无法支付 Onlyfans 等问题。准备工作:WildCard账户&#…

国外大学招生办公室部署AI人工智能

自从去年 11 月 ChatGPT 推出以来,大学招生人员一直在担心生成式人工智能对大学申请的影响。但阅读这些申请的辅导员也越来越多地使用人工智能。 根据针对未来大学申请者的在线教育杂志《Intelligent》的一项新调查,目前有 50% 的高等教育招生办公室在审…

Text2SQL研究-Chat2DB体验与剖析

文章目录 概要业务数据库配置Chat2DB安装设置原理剖析 小结 概要 近期笔者在做Text2SQL的研究,于是调研了下Chat2DB,基于车辆订单业务做了一些SQL生成验证,有了一点心得,和大家分享一下.: 业务数据库设置 基于车辆订…

C# 实现微信自定义分享

目录 需求与调整 代码实现 获取令牌 生成合法票据 获取有效签名 客户端准备 客户端实现 小结 需求与调整 在微信中打开网页应用后,可以选择将地址发送给朋友进行分享,如下图: 在实际的应用中,我们可能不是简单的将该网页…

TI的电量计驱动在卸载时导致Linux卡死

背景 最近移植TI电量计芯片bq40z50的驱动,移植完毕后,能正常读取电池信息了,但是无意中发现驱动卸载会导致Linux卡死,死前终端闪过大量打印,将putty的缓冲区都耗尽了,必须启用syslog转发并用visual syslog…

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战(第2版&#xff…

【Docker】02 镜像管理

文章目录 一、Images镜像二、管理操作2.1 搜索镜像2.1.1 命令行搜索2.1.2 页面搜索2.1.3 搜索条件 2.2 下载镜像2.3 查看本地镜像2.3.1 docker images2.3.2 --help2.3.3 repository name2.3.4 --filter2.3.5 -q2.3.6 --format 2.4 给镜像打标签2.5 推送镜像2.6 删除镜像2.7 导出…

Eclipse安装配置、卸载教程(Windows版)

Eclipse是一个开放源代码的集成开发环境(IDE),最初由IBM公司开发,现在由Eclipse基金会负责维护。它是一个跨平台的工具,可以用于开发多种编程语言,如Java、C/C、Python、PHP、Rust等。 Eclipse提供了一个可…

戴上HAUWEI WATCH GT 4,解锁龙年新玩法

春节将至,华为WATCH GT 4作为一款颜值和实力并存的手表,能为节日增添了不少趣味和便利。无论你是钟情于龙年表盘或定制属于自己的表盘,还是过年用来抢红包或远程操控手机拍全家福等等,它都能成为你的“玩伴”。接下来,…

Flink从入门到实践(二):Flink DataStream API

文章目录 系列文章索引三、DataStream API1、官网2、获取执行环境(Environment)3、数据接入(Source)(1)总览(2)代码实例(1.18版本已过时的)(3&…

极值图论基础

目录 一,普通子图禁图 二,Turan问题 三,Turan定理、Turan图 1,Turan定理 2,Turan图 四,以完全二部图为禁图的Turan问题 1,最大边数的上界 2,最大边数的下界 五,…