当前位置: 首页 > news >正文

PyTorch的数据处理


💥今天看一下 PyTorch数据通常的处理方法~

一般我们会将dataset用来封装自己的数据集,dataloader用于读取数据 

Dataset格式说明 

💬dataset定义了这个数据集的总长度,以及会返回哪些参数,模板:

from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self, ):# 定义数据集包含的数据和标签def __len__(self):return len(...)def __getitem__(self, index):# 当数据集被读取时,返回一个包含数据和标签的元组return self.x_data[index], self.y_data[index]

DataLoader格式说明

my_dataset = DataLoader(mydataset, batch_size=2, shuffle=True,num_workers=4)# num_workers:多进程读取数据

导入两个列表到Dataset

class MyDataset(Dataset):def __init__(self, ):# 定义数据集包含的数据和标签self.x_data = [i for i in range(10)]self.y_data = [2*i for i in range(10)]def __len__(self):return len(self.x_data)def __getitem__(self, index):# 当数据集被读取时,返回一个包含数据和标签的元组return self.x_data[index], self.y_data[index]mydataset = MyDataset()
my_dataset = DataLoader(mydataset)for x_i ,y_i in my_dataset:print(x_i,y_i)

💬输出:

tensor([0]) tensor([0])
tensor([1]) tensor([2])
tensor([2]) tensor([4])
tensor([3]) tensor([6])
tensor([4]) tensor([8])
tensor([5]) tensor([10])
tensor([6]) tensor([12])
tensor([7]) tensor([14])
tensor([8]) tensor([16])
tensor([9]) tensor([18])

💬如果修改batch_size为2,则输出:

tensor([0, 1]) tensor([0, 2])
tensor([2, 3]) tensor([4, 6])
tensor([4, 5]) tensor([ 8, 10])
tensor([6, 7]) tensor([12, 14])
tensor([8, 9]) tensor([16, 18])
  • 我们可以看出,这是管理每次输出的批次的
  • 还可以控制用多少个线程来加速读取数据(Num Workers),这参数和电脑cpu核心数有关系,尽量不超过电脑的核心数

导入Excel数据到Dataset中

💥dataset只是一个类,因此数据可以从外部导入,我们也可以在dataset中规定数据在返回时进行更多的操作,数据在返回时也不一定是有两个。

pip install pandas
pip install openpyxl
class myDataset(Dataset):def __init__(self, data_loc):data = pd.read_ecl(data_loc)self.x1,self.x2,self.x3,self.x4,self.y = data['x1'],data['x2'],data['x3'] ,data['x4'],data['y']def __len__(self):return len(self.x1)def __getitem__(self, idx):return self.x1[idx],self.x2[idx],self.x3[idx],self.x4[idx],self.y[idx]mydataset = myDataset(data_loc='e:\pythonProject Pytorch1\data.xls')
my_dataset = DataLoader(mydataset,batch_size=2)
for x1_i ,x2_i,x3_i,x4_i,y_i in my_dataset:print(x1_i,x2_i,x3_i,x4_i,y_i)

导入图像数据集到Dataset

需要安装opencv

pip install opencv-python

💯加载官方数据集 

有一些数据集是PyTorch自带的,它被保存在TorchVision中,以mnist数据集为例进行加载:

http://www.lryc.cn/news/354641.html

相关文章:

  • 第14章-蓝牙遥控小车 手把手做蓝牙APP遥控小车 蓝牙串口通讯讲解
  • 【补充1】字节对齐
  • Java数据库连接(JDBC)
  • 记录一次cas单点登录的集成
  • 【吊打面试官系列】Java高并发篇 - 什么是乐观锁和悲观锁?
  • 机器学习之词袋模型
  • 【C++/STL】vector(常见接口、模拟实现、迭代器失效)
  • Spring Boot Web 开发:MyBatis、数据库连接池、环境配置与 Lombok 全面解析
  • 【UE5.1 多线程 异步】“Async Blueprints Extension”插件使用记录
  • 【已解决】在jupyter里运行torch.cuda.is_available(),显示True,在pycharm中运行却显示false。
  • Flutter 中的 Scrollbar 小部件:全面指南
  • 【华为】将eNSP导入CRT,并解决不能敲Tab问题
  • 实验二 电子传输系统安全-进展2
  • JavaScript 获取 HTML 中特定父元素下的子元素
  • 等保服务是一次性服务吗?为什么?怎么理解?
  • 全网首发UNIAPP功能多的iapp后台源码
  • 【搜索方法推荐】高效信息检索方法和实用网站推荐
  • 面试被问到不懂的东西,是直接说不懂还是坚持狡辩一下?
  • Flutter 中的 StatefulBuilder 小部件:全面指南
  • mail发送接口API如何使用?怎么调用接口?
  • DOS学习-目录与文件应用操作经典案例-attrib
  • STP简介
  • java调用科大讯飞在线语音合成API --内附完整项目
  • Vuex 页面刷新数据丢失怎么解决
  • 如何使用Cloudways搭建WordPress网站
  • Lora理解
  • EtherCAT总线掉线如何自动重启
  • RabbitMQ有哪些优缺点
  • word页眉线如何置于文字上方
  • CTF-web-攻防世界-2