前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >paddle深度学习2 数据集的构建

paddle深度学习2 数据集的构建

原创
作者头像
用户11104668
发布2024-05-17 11:39:41
1150
发布2024-05-17 11:39:41
举报
文章被收录于专栏:paddle深度学习paddle深度学习

在深度学习中,无论是做哪项任务,图像、文本或是声音,都涉及到数据的处理,

而数据通常包含在数据集中

paddle当中有两个重要的类是和数据集相关的:

DatasetDataLoader

【Dataset】

它位于paddle.io.Dataset,用于定义数据集

这里只介绍它的__getitem__和__len__两个方法

1. __getitem__

__getitem__用于实现索引操作,它定义了通过索引访问数据集中的样本的行为。

当我们使用索引操作符 [] 时,实际上是调用了 __getitem__ 函数

__getitem__ 函数接收一个索引作为参数,并返回对应索引位置的数据样本

2. __len__

__len__ 函数用于返回数据集中样本的数量。它定义了获取数据集长度的行为

下面的代码使用Dataset定义了一个基础的数据集:

import paddle

class MyDataset(paddle.io.Dataset):

def __init__(self, data, labels):

self.data = data

self.labels = labels

def __getitem__(self, index):

data = self.data[index]

label = self.labels[index]

return data, label

def __len__(self):

return len(self.data)

data=[2,8,1,3,9,4]

labels=[0,1,0,0,1,0]

mydata=MyDataset(data,labels)

for i in range(len(mydata)):

print(mydata[i])

在这里,我们构建了一个小型数据集:它的数据部分为列表data,标签部分为列表labels,各有6个元素

我们创建了MyDataset类(继承自paddle.io.Dataset),并用它创建了一个mydata实例(传入了数据集data,labels)

最后我们使用一个for循环打印了数据集的每个元素

len()函数和[]都能正常工作

【DataLoader】

它被定义在paddle.io.DataLoader,负责在模型训练过程中高效地加载和批处理数据

DataLoader的一个重要作用是可以批量的从数据集中取出数据,方便程序进行并行计算,这极大了提高了深度学习程序的运行效率

import paddle

class MyDataset(paddle.io.Dataset):

def __init__(self, data, labels):

self.data = data

self.labels = labels

def __getitem__(self, index):

data = self.data[index]

label = self.labels[index]

return data, label

def __len__(self):

return len(self.data)

data=[2,8,1,3,9,4]

labels=[0,1,0,0,1,0]

mydata=MyDataset(data,labels)

dataloader = paddle.io.DataLoader(mydata, batch_size=2, shuffle=True)

for batch in dataloader:

print(batch)

可以看到,因为设置batchsize=2,每次会取出2组数据

而shuffle=True使得数据的顺序被打乱了

这里显示我们的数据类型是Tensor,这正是我们后面要常用的类型,我们可以称之为张量或者向量,详情我们将在后面的课程介绍

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档