Pytorch cifar100离线加载二进制文件

说明:直接加载cifar100二进制文件到Pytorch

 


'''
直接加载文件到pytorchmetatesttrain
'''import os
import cv2
import pickle
import time
import numpy as np
import matplotlib.pyplot as pltimport torchvision
from torch.autograd import Variable
import torch.utils.data as Data
from torchvision import transformsdef load_CIFAR_100(root, train=True, fine_label=True):"""root,文件名train  训练数据集时取True,测试集时取Falsefine_label  如果分类为100类时取True,分类为20类时取False"""if train:filename = root + 'train'else:filename = root + 'test'with open(filename, 'rb')as f:datadict = pickle.load(f,encoding='bytes')X = datadict[b'data']if train:# [50000, 32, 32, 3]X = X.reshape(50000, 3, 32, 32).transpose(0,2,3,1)else:# [10000, 32, 32, 3]X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1)# fine_labels细分类,共100中类别# coarse_labels超级类,共20中类别,每个超级类中实际包含5种fine_labels# 如trees类中,又包含maple, oak, palm, pine, willow,5种具体的树# 这里只取fine_labels# Y = datadict[b'coarse_labels']+datadict[b'fine_labels']if fine_label:Y = datadict[b'fine_labels']else:Y = datadict[b'coarse_labels']Y = np.array(Y)return X, Yclass DealDataset(Data.Dataset):"""读取数据、初始化数据"""def __init__(self, root, train=True, fine_label=True, transform=None):# 其实也可以直接使用torch.load(),读取之后的结果为torch.Tensor形式self.x, self.y = load_CIFAR_100(root, train=train, fine_label=fine_label)self.transform = transformself.train = traindef __getitem__(self, index):img, target = self.x[index], int(self.y[index])if self.transform is not None:img = self.transform(img)return img, targetdef __len__(self):return len(self.x)root = r'E:\cifar-100-python' + '/'
batch_size = 20# 实例化这个类,然后我们就得到了Dataset类型的数据,记下来就将这个类传给DataLoader,就可以了。
trainDataset = DealDataset(root, train=True, fine_label=True, transform=transforms.ToTensor())
testDataset = DealDataset(root, train=False, fine_label=True, transform=transforms.ToTensor())# 训练数据和测试数据的装载
train_loader = Data.DataLoader(dataset=trainDataset,batch_size=batch_size, # 一个批次可以认为是一个包,每个包中含有batch_size张图片shuffle=False,
)test_loader = Data.DataLoader(dataset=testDataset,batch_size=batch_size,shuffle=False,
)if __name__ == '__main__':# 这里trainDataset包含:train_labels, train_set等属性;  数据类型均为ndarrayprint(f'trainDataset.y.shape:{trainDataset.y.shape}\n')print(f'trainDataset.y.shape:{trainDataset.x.shape}\n')# 这里train_loader包含:batch_size、dataset等属性,数据类型分别为int,DealDataset# dataset中又包含train_labels, train_set等属性;  数据类型均为ndarrayprint(f'train_loader.batch_size: {train_loader.batch_size}\n')print(f'train_loader.dataset.y.shape: {train_loader.dataset.y.shape}\n')print(f'train_loader.dataset.x.shape: {train_loader.dataset.x.shape}\n')# # --可视化1,使用OpenCV----------------------------------------------images, lables = next(iter(train_loader))img = torchvision.utils.make_grid(images, nrow = 10)img = img.numpy().transpose(1, 2, 0)# OpenCV默认为BGR,这里img为RGB,因此需要对调img[:,:,::-1]cv2.imshow('img', img[:,:,::-1])cv2.waitKey(0)

 

运行结果:

显示图

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

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

相关文章

为单个Web应用程序配置多个上下文根– JBoss

有时&#xff0c;我们通过在jboss-web.xm l中定义一个来对应用程序进行更改&#xff0c;以支持利用JBoss功能的多个上下文根&#xff0c;如下所示&#xff1a; webapp / WEB-INF / jboss-web.xml&#xff1a; <?xml version"1.0" encoding"UTF-8"?&…

手动升级ubuntu 18.04内核从4.15.0-45-generic到4.15.0-52-generic

1 从下面官网下载相应的包&#xff0c;共3个。 https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15-rc9/ linux-headers-4.15.0-041500rc9-generic_4.15.0-041500rc9.201801212130_amd64.deb linux-headers-4.15.0-041500rc9_4.15.0-041500rc9.201801212130_all.deb linux-…

cmd52命令发送 mmc_乾坤合一~Linux SD/MMC/SDIO驱动分析(上)

一、SD/MMC/SDIO概念区分SD(SecureDigital)与 MMC(MultimediaCard)SD 是一种 flash memory card 的标准&#xff0c;也就是一般常见的 SD 记忆卡&#xff0c;而 MMC 则是较早的一种记忆卡标准&#xff0c;目前已经被 SD 标准所取代。在维基百科上有相当详细的 SD/MMC 规格说明&…

Pytorch MNIST直接离线加载二进制文件到pytorch

说明&#xff1a;MNIST直接离线加载二进制文件到pytorch 直接以下4个文件读入数据到pytorch中t10k-images-idx3-ubyte.gzt10k-labels-idx1-ubyte.gztrain-images-idx3-ubyte.gztrain-labels-idx1-ubyte.gz import os import numpy as np import gzipimport torch.utils.data a…

爱与愁的心痛

爱与愁的心痛 题目链接 题意 这道题的题意是&#xff0c;给定一个整数数组&#xff0c;数组中的每个元素代表一个不爽的事情的刺痛值。现在需要找出连续m个刺痛值的和的最小值。 思路 读取输入和初始化遍历数组并计算窗口和输出最小和 坑点 数组越界重复计算窗口和 算法一&am…

begintrans返回值_SQL事务回滚 ADO BeginTrans, CommitTran 以及 RollbackTrans 方法

定义和用法这三个方法与 Connection 对象使用&#xff0c;来保存或取消对数据源所做的更改。注释&#xff1a;并非所有提供者都支持事务。注释&#xff1a;BeginTrans、CommitTrans 和 RollbackTrans 方法在客户端 Connection 对象上无效。那客户端不能支持事务? 这是什么意思…

Pytorch Fashion_MNIST直接离线加载二进制文件到pytorch

说明&#xff1a;Fashion_MNIST直接离线加载二进制文件到pytorch 将4个gz直接加载到pytoch用来训练t10k-images-idx3-ubyte.gzt10k-labels-idx1-ubyte.gztrain-images-idx3-ubyte.gztrain-labels-idx1-ubyte.gz import os import numpy as np import gzip import matplotlib.p…

jQuery选择器种类整理

选择器概念 jQuery选择器是通过标签、属性或者内容对HTML内容进行选择&#xff0c;选择器运行对HTML元素组或者单个元素进行操作。 jQuery选择器使用$符号&#xff0c;等同于jquery&#xff0c;例如&#xff1a; $(“li”) jquery(“li”) 同样等同于javascript中的&#xff1…

jee过滤器应用场景_将涡轮增压器添加到JEE Apps

jee过滤器应用场景我扮演的关键角色之一是在本地社区中传播Akka。 作为讨论的一部分&#xff0c;人们通常会想到的问题/疑问是Akka如何针对编写良好的Java / JEE应用程序提供更好的可伸缩性和并发性。 由于底层硬件/ JVM保持不变&#xff0c;因此参与者模型如何比传统的JEE应用…

mysql 列 随机数_mysql mmp 某字段插入随机数!(说不定那天就忘记了,存下来再说)...

UPDATE 表名 SET 字段名ceiling(rand()*500000500000) WHERE (条件);原文链接&#xff1a;http://blog.csdn.net/bobay/article/details/24797525MMP 上面的只能更新一条UPDATE 表名 SET 字段名cast(rand(checksum(newid()))*(24)1 as int) WHERE (条件);上面的就是每条都更新的…

适用于Java开发人员的Elasticsearch:Elasticsearch生态系统

本文是我们学院课程的一部分&#xff0c;该课程的标题为Java开发人员的Elasticsearch教程 。 在本课程中&#xff0c;我们提供了一系列教程&#xff0c;以便您可以开发自己的基于Elasticsearch的应用程序。 我们涵盖了从安装和操作到Java API集成和报告的广泛主题。 通过我们简…

matplotlib markers的类型

https://matplotlib.org/api/markers_api.html matplotlib markers 所有可能的markers定义如下: marker symbol description "." point "," pixel "o" circle "v" triangle_down "^" triangle_up &…

android实时声音信号波形_Android输出正弦波音频信号(左右声道对称)-阿里云开发者社区...

转载请说明出处&#xff01;作者&#xff1a;kqw攻城狮出处&#xff1a;个人站 | CSDN需求&#xff1a;左右声道分别输出不同的音频数据&#xff0c;波形要是一个正弦波&#xff0c;左右声道还要对称&#xff01;对硬件不是很了解&#xff0c;说是要通过音波避障。效果图之前已…

matplotlib color可选

matplotlib color matplotlib中color可用的颜色&#xff1a; cnames { aliceblue: #F0F8FF, antiquewhite: #FAEBD7, aqua: #00FFFF, aquamarine: #7FFFD4, azure: #F0FFFF, beige: #F5F5…

python之scrapy爬取jd和qq招聘信息

1、settings.py文件 # -*- coding: utf-8 -*-# Scrapy settings for jd project # # For simplicity, this file contains only settings considered important or # commonly used. You can find more settings consulting the documentation: # # https://doc.scrapy.org…

opencl 加速 c语言程序_Win10应用获得面向OpenCL和OpenGL的兼容层

今年早些时候&#xff0c;微软宣布正在努力在Windows 10的Direct3D 12(D3D12)中启用对OpenCL和OpenGL映射层的支持。为了启用映射层&#xff0c;解决设备上没有OpenCL和OpenGL硬件驱动时的兼容性问题&#xff0c;公司目前已经在微软商店中发布了兼容性包。该兼容性包的标题为 &…

matplotlib plt.subplot

matplotlib plt.subplot 用于在一个Figure对象里画多个子图(Axes)。 其调用格式&#xff1a;subplot(numRows, numCols, plotNum)&#xff0c;即&#xff08;行、列、序号&#xff09;。 图表的整个绘图区域被分成numRows行和numCols列&#xff0c;plotNum参数指定创建的Axes…

javaee和javaee_JavaEE概念简介

javaee和javaee这篇文章旨在阐明J2EE范例中使用的首字母缩写词和概念。 J2EE代表Java to Platform&#xff0c;Entreprise Edition。 它使创建模块化Java应用程序得以部署在应用程序服务器上。 它依赖于Java SE&#xff0c;Java SE是一组Java库的核心&#xff0c;所有Java应用程…

卷boot仅剩余XX空间

参见&#xff1a; https://blog.csdn.net/hnzcdy/article/details/52381844 转载于:https://www.cnblogs.com/lxc1910/p/11102528.html

python多分支结构实例_JS优化多分支结构(经典)

多分支结构的优化有很多好处&#xff1a;既方便代码维护&#xff0c;又可以提升代码执行效率。例如&#xff0c;设计有多个条件&#xff0c;只有当多个条件都成立时&#xff0c;才允许执行特定任务。示例1遵循简单的设计思路&#xff0c;使用多重分支逐个检测这些条件。if (a) …