.npy格式图像如何进行深度学习模型训练处理,亲测可行

import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npfrom torch.utils.data import DataLoader, Datasetfrom torchvision import transformsfrom PIL import Imageimport json# 加载训练集和测试集数据train_images = np.load('../dataset/train_image.npy')train_labels = np.load('../dataset/train_label_3.npy')test_images = np.load('../dataset/test_image.npy')test_labels = np.load('../dataset/test_label_3.npy')# 将one-hot编码的标签转换为整数索引train_labels = np.argmax(train_labels, axis=1)test_labels = np.argmax(test_labels, axis=1)# 确保图像数据是 uint8 类型train_images = (train_images * 255).astype(np.uint8)test_images = (test_images * 255).astype(np.uint8)# 定义数据集类class NumpyToPIL(object):def __call__(self, sample):return Image.fromarray(sample)class CustomImageDataset(Dataset):def __init__(self, images, labels, transform=None):self.images = imagesself.labels = labelsself.transform = transformdef __len__(self):return len(self.images)def __getitem__(self, idx):image = self.images[idx]label = self.labels[idx]if self.transform:image = self.transform(image)return image, label# 数据预处理和增强transform_train = transforms.Compose([NumpyToPIL(),transforms.Resize((224, 224)),transforms.RandomHorizontalFlip(),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])transform_test = transforms.Compose([NumpyToPIL(),transforms.Resize((224, 224)),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])# 创建数据集和数据加载器#BATCH_SIZE = 32dataset_train = CustomImageDataset(train_images, train_labels, transform=transform_train)dataset_test = CustomImageDataset(test_images, test_labels, transform=transform_test)train_loader = DataLoader(dataset_train, batch_size=BATCH_SIZE, num_workers=8, shuffle=True, drop_last=True)test_loader = DataLoader(dataset_test, batch_size=BATCH_SIZE, shuffle=False)# 检查标签格式train_labels = train_labels.ravel()test_labels = test_labels.ravel()# 检查标签的唯一值,生成类别索引映射train_class_to_idx = {str(i): i for i in set(train_labels.tolist())}test_class_to_idx = {str(i): i for i in set(test_labels.tolist())}with open('train_class.txt', 'w') as file:file.write(str(train_class_to_idx))with open('train_class.json', 'w', encoding='utf-8') as file:file.write(json.dumps(train_class_to_idx))with open('test_class.txt', 'w') as file:file.write(str(test_class_to_idx))with open('test_class.json', 'w', encoding='utf-8') as file:file.write(json.dumps(test_class_to_idx))

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

x86芯片定制,Ethercat芯片定制,适用于运动控制,工业总线等软硬一体机

x86芯片定制,Ethercat芯片定制 X86平台 我们的研发工程师已经积累了非常丰富的主板、整机设计经验,对接您的产品规格场景需求,快速交付样机,包含主板、BOX整机、平板电脑、CPCI等形态产品。降本、长生命周期、快速交付、及时响应…

鸿蒙开发设备管理:【@ohos.settings (设置数据项名称)】

设置数据项名称 说明: 本模块首批接口从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 本模块提供设置数据项的访问功能相关接口的说明及示例。 导入模块 import settings from ohos.settings;settings.getUri…

访问者模式在金融业务中的应用及其框架实现

引言 访问者模式(Visitor Pattern)是一种行为设计模式,它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式,可以将相关操作分离到访问者中,从而提高系统的灵活性和可维护性。在金融业务…

数组理论基础

1. **数组定义**: - 数组是存放在连续内存空间上的相同类型数据的集合。 2. **数组特性**: - 数组下标从0开始。 - 数组的内存空间地址是连续的。 3. **数组操作**: - 数组可以通过下标索引快速访问元素。 - 数组元素的删除…

修复 OpenSSH 爆出极其严重的安全漏洞!

最近几天OpenSSH爆出了一个高危漏洞:CVE-2024-6387,影响到了很多的Linux服务器系统。明月第一时间给所有的代维客户服务器进行了排查和漏洞修复,因此耽搁了一些时间。直到今天才算抽出空来给大家分享一下。严格上来说这个漏洞的危险性还是极高…

PR视频剪辑(2)——节奏把控(导入、序列、素材出入点、标记点)

PR视频剪辑(2)——视频节奏(导入、项目窗口、序列、素材出入点、标记点) 一、新建项目、导入素材1.1 拖动导入1.2 双击导入1.3 右键导入1.4 窗口导入1.5 选择文件导入1.6 快捷键导入(ctrl + i)1.7 文件夹导入(文件夹全是素材就可使用该方法)二、项目窗口(介绍项目窗口…

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变,网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0(即《信息安全技术 网络安全等级保护基本要求》2.0版本)作为网络安全等级保护制度的最新标准&#x…

CesiumJS【Basic】- #058 绘制网格填充多边形(Entity方式)-使用shader

文章目录 绘制网格填充多边形(Entity方式)-使用shader1 目标2 代码2.1 main.ts绘制网格填充多边形(Entity方式)-使用shader 1 目标 使用Entity方式绘制绘制网格填充多边形 - 使用shader 2 代码 2.1 main.ts import * as Cesium from cesium;// 创建 Cesium Viewer 实例…

非NVIDIA联盟——如UALink(超加速器链接)联盟和UXL基金会等组织发起反击

随着NVIDIA可能面临法国反垄断监管机构的指控,非NVIDIA联盟——如UALink(超加速器链接)联盟和UXL基金会等组织——正据报道发起反击,大幅增加在专用ASIC开发上的努力。 据《工商时报》报道,相关的半导体知识产权&…

在鸿蒙ArkTS中使用Three.js实现3D模型渲染

1.引言 鸿蒙操作系统作为华为自主研发的分布式操作系统,正在迅速发展并获得越来越多开发者的关注。ArkTS作为鸿蒙原生开发语言,提供了强大的声明式UI框架和丰富的系统能力。然而,在复杂的3D图形渲染方面,ArkTS还缺乏原生的支持。 Three.js是一个流行的JavaScript 3D库,它简化…

Qt窗口阴影效果

qt中,一些弹窗我们期望有一个阴影的效果。我们可以在ui界面中,对整个窗口的边缘预留10px,然后在构造函数中设置一下的代码,当然还要设置透明属性,然后即可实现。 // 创建阴影效果QGraphicsDropShadowEffect *shadowEf…

Linux 【线程池】【单例模式】【读者写者问题】

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux初窥门径⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 目录 🏳️‍🌈前言 …

ES6自定义模块

在ES6中,我们可以使用 export 和 import 关键字来定义和使用自定义模块。 定义模块 导出(export) 命名导出(Named Exports): 使用 export 关键字来导出模块中的变量、函数、类等。例如: // ma…

js 复制文本带样式

一键复制带样式的html文本到邮件 <div><div idcopy-content><div style{{ fontSize: 16px,fontWeight: 500, lineHeight: 24px, color: #222, marginBottom: 16px }}>邀请您参加腾讯会议网络研讨会&#xff08;Webinar)</div></div><Button …

使用 /proc/sysrq-trigger 进行系统调试和故障排除

前言 在 Linux 系统中&#xff0c;/proc/sysrq-trigger 是一个强大的工具&#xff0c;提供了一种与系统进行低级别交互的方法。本文将详细介绍 sysrq-trigger 的功能、使用方法及其在系统调试和故障排除中的应用。 什么是 /proc/sysrq-trigger? /proc/sysrq-trigger 是 Lin…

【HICE】web服务器搭建4

自定义多个ip地址访问 1.下载httpd协议&#xff1a;dnf install httpd -y 2.编辑vhost.conf cd /etc/httpd cd /conf.d <directory /www> allowoverride none require all granted </directory> <virtualhost 192.168.244.130:80> documentroot /www s…

计算机视觉是什么,涉及的关键技术和应用领域

计算机视觉是一门技术&#xff0c;它是人工智能&#xff08;AI&#xff09;的一个重要分支&#xff0c;它使计算机能够从图像或视频中识别、处理和理解视觉信息。它的研究和应用涉及多个领域&#xff0c;包括工业自动化、安全监控、医疗诊断、交通管理等。计算机视觉的应用非常…

07 docker 容器存储持久化

目录 1. Docker Volumes 特点 示例 2. Bind Mounts 特点 示例 对比总结 3. tmpfs Mounts 4. Docker Storage Plugins 5. Kubernetes Persistent Volumes 6. Network Attached Storage (NAS) 和 Storage Area Network (SAN) 1. Docker Volumes 使用存储卷进行存储持久…

什么是 API 代理?

API 代理就像是您的计算机和互联网上特殊服务之间的中间人。它有点像集翻译、保安和信使于一体。 什么是 API 代理&#xff1f; API 代理就像是您和在线服务之间的中间人。当您的计算机需要从某个特殊的在线服务 (API) 获得某些东西时&#xff0c;API 代理会确保一切顺利进行…

Eslint与Prettier搭配使用

目录 前置准备 Eslint配置 Prettier配置 解决冲突 前置准备 首先需要安装对应的插件 然后配置settings.json 点开之后就会进入settings.json文件里&#xff0c;加上这两个配置 // 保存的时候自动格式化 "editor.formatOnSave": true, // 保存的时候使用prettier进…