当前位置: 首页 > 工具软件 > dataloader > 使用案例 >

TensorDataset和DataLoader使用

臧烨烁
2023-12-01

      在说TensorDataset之前我们先简单说一下Dataset


      一般情况下是DatasetDataLoader配合使用

Dataset :用来整理数据的格式 ,即从全部数据中获取
DataLoader:用来分批次向模型中传入数据,也就是把 Dataset中的全部数据分批次送入模型中

但有时数据格式比较简单,也可以使用TensorDataset的方式来整理数据的格式

例如:按对三取余来进行分类,可以分为1,2,0 三种情况

1.构建TensorDataset

x = torch.Tensor([[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]])
y = torch.Tensor([1, 2, 0])
tensorDataset = Data.TensorDataset(x, y)

print(dataset)
#<torch.utils.data.dataset.TensorDataset object at 0x0000019D740B8B38>

将tensorDataset输出,可以得到一下格式的数据

for i, j in tensorDataset:
    print(i, j)
# tensor([ 1.,  4.,  7., 10.]) tensor(1.)
# tensor([ 2.,  5.,  8., 11.]) tensor(2.)
# tensor([ 3.,  6.,  9., 12.]) tensor(0.)

2.用TensorDataset构建DataLoader

dataloader = Data.DataLoader(dataset=tensorDataset, 
					batch_size=2, 
					shuffle=False,  #shuffle是否打乱顺序,默认为False表示不打乱顺序
				 	drop_last=True) # drop_last表示是否舍弃最后一个,
				 					#举例:本次总的数据是三个,每次运送两个数据

print(dataloader)
for j, k in dataloader:
    print(j, k)

这样就可以分批次的取出数据了
这事只输出了两个数据,最后一个被舍弃
tensor([[ 1., 4., 7., 10.],
[ 2., 5., 8., 11.]]) tensor([1., 2.])

 类似资料: