Pytorch MNIST直接离线加载二进制文件到pytorch
说明: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 as Data
from torchvision import transformsimport timedataPath = 'E:/MNIST/binary_file'def load_data(data_folder, data_name, label_name):"""data_folder: 文件目录data_name: 数据文件名label_name:标签数据文件名"""with gzip.open(os.path.join(data_folder,label_name), 'rb') as lbpath: # rb表示的是读取二进制数据y_train = np.frombuffer(lbpath.read(), np.uint8, offset=8)with gzip.open(os.path.join(data_folder,data_name), 'rb') as imgpath:x_train = np.frombuffer(imgpath.read(), np.uint8, offset=16).reshape(len(y_train), 28, 28)return (x_train, y_train)class DealDataset(Data.Dataset):"""读取数据、初始化数据"""def __init__(self, folder, data_name, label_name,transform=None):(train_set, train_labels) = load_data(folder, data_name, label_name) # 其实也可以直接使用torch.load(),读取之后的结果为torch.Tensor形式self.train_set = train_setself.train_labels = train_labelsself.transform = transformdef __getitem__(self, index):img, target = self.train_set[index], int(self.train_labels[index])if self.transform is not None:img = self.transform(img)return img, targetdef __len__(self):return len(self.train_set)# 实例化这个类,然后我们就得到了Dataset类型的数据,记下来就将这个类传给DataLoader,就可以了。
trainDataset = DealDataset(dataPath, "train-images-idx3-ubyte.gz","train-labels-idx1-ubyte.gz",transform=transforms.ToTensor())
testDataset = DealDataset(dataPath, "t10k-images-idx3-ubyte.gz","t10k-labels-idx1-ubyte.gz",transform=transforms.ToTensor())# 训练数据和测试数据的装载
train_loader = Data.DataLoader(dataset=trainDataset,batch_size=100, # 一个批次可以认为是一个包,每个包中含有100张图片shuffle=False,
)test_loader = Data.DataLoader(dataset=testDataset,batch_size=100,shuffle=False,
)if __name__ == '__main__':# 这里trainDataset包含:train_labels, train_set等属性; 数据类型均为ndarrayprint(f'trainDataset.train_labels.shape:{trainDataset.train_labels.shape}\n')print(f'trainDataset.train_set.shape:{trainDataset.train_set.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.train_labels.shape: {train_loader.dataset.train_labels.shape}\n')print(f'train_loader.dataset.train_set.shape: {train_loader.dataset.train_set.shape}\n')
运行结果
Pytorch MNIST直接离线加载二进制文件到pytorch相关推荐
- Pytorch Fashion_MNIST直接离线加载二进制文件到pytorch
说明:Fashion_MNIST直接离线加载二进制文件到pytorch ''' 将4个gz直接加载到pytoch用来训练t10k-images-idx3-ubyte.gzt10k-labels-idx ...
- Pytorch cifar10离线加载二进制文件
说明直接离线加载cifar10到Pytorch ''' 直接加载6个文件到pytorchdata_batch_1data_batch_2data_batch_3data_batch_4data_bat ...
- Pytorch cifar100离线加载二进制文件
说明:直接加载cifar100二进制文件到Pytorch ''' 直接加载文件到pytorchmetatesttrain '''import os import cv2 import pickle i ...
- Pytorch中的数据加载
Pytorch中的数据加载 1. 模型中使用数据加载器的目的 在前面的线性回归模型中,使用的数据很少,所以直接把全部数据放到模型中去使用. 但是在深度学习中,数据量通常是都非常多,非常大的,如此大量的 ...
- pytorch中的数据加载(dataset基类,以及pytorch自带数据集)
目录 pytorch中的数据加载 模型中使用数据加载器的目的 数据集类 Dataset基类介绍 数据加载案例 数据加载器类 pytorch自带的数据集 torchvision.datasets MIN ...
- 【学习系列7】Pytorch中的数据加载
目录 1. 模型中使用数据加载器的目的 2. 数据集类 3. 迭代数据集 1. 模型中使用数据加载器的目的 在前面的线性回归横型中,我们使用的数据很少,所以直接把全部数据放到锁型中去使用. 但是在深度 ...
- Python 加载二进制文件到 CkByteArray 对象
Python 加载二进制文件到 CkByteArray 对象 import chilkat zipData = chilkat.CkByteData() success = zipData.loadF ...
- pytorch model.to(device) 加载模型特别慢
问题:pytorch model.to(device) 加载模型特别慢 解决方案:卸载掉conda安装的pytorch 采用pytorch官网的pip指令下载方式.
- pytorch模型保存与加载总结
pytorch模型保存与加载总结 模型保存与加载方式 模型保存 方式一 只存储模型中的参数,该方法速度快,占用空间少(官方推荐使用) model = VGGNet() torch.save(model ...
最新文章
- 获取运行中的TeamViewer的账号和密码--中文版
- Linux 多版本python3、python2共存安装
- 【Flutter】Flutter 项目中使用 Flutter 插件 ( Flutter 插件管理平台 | 搜索 Flutter 插件 | 安装 Flutter 插件 | 使用 Flutter 插件 )
- Java中JRE、JDK和JVM的区别
- 第十八节20181216
- C语言 满分代码:L1-044 稳赢 (15分)(解题报告)
- 蓝桥杯 每周一练 第一周(3n+1问题)
- CAN 屏蔽器与滤波器(过滤器)
- java反射机制+继承设计技巧
- C/C++课程设计 之职工管理系统
- 【ES6(2015)】Function函数
- Windows域控 批量设置用户下次登录 修改密码【全域策略生效】
- CUDA 多GPU调用实现
- 凸优化第八章几何问题 8.4 极值体积椭圆
- 使用wordPress搭建个人博客
- 能耗监控 | FCU1101物联数采网关在电力能效管理系统中的应用
- 上海亚商投顾 早餐FM/0822新能源汽车免征购置税政策延期
- 自己搭建虚拟服务器,如何自己搭建虚拟主机
- 六度分割理论和SNS
- Matlab中的正态分布概率函数
热门文章
- 计算机语言 angela,Angela
- 配置中文_星球大战:战机中队配置需求公布 支持中文
- C++ Qt全局异常处理器_QT教程
- java 框架 例子_如何设计Java框架? –一个简单的例子
- onenote创建快速笔记--此分区尚不可用,它是从其他设备添加的,该设备同步后才将可用
- [渝粤教育] 西南民族大学 数据结构 参考 资料
- 【渝粤题库】陕西师范大学200651线性代数 作业(高起专、高起本)
- Linux下读取smBIOS源码,Linux下读取SMBIOS信息
- python将html存为pdf_用Python将HTML转为PDF。
- Matlab查看数组大小的命令——size、length、numel和ndims