DataLoader() can get the zero or more tensors of the zero or more elements flexibly manipulated from the dataset of the 0D or more D tensor of zero or more elements as shown below:
*Memos:
- The 1st argument is
dataset(Required-Type:Dataset ortensorofint,float,complexorbool). *The 0D or more D tensor of zero or more elements can be used. - The 2nd argument is
batch_size(Optional-Default:1-Type:int): *Memos:- It must be
1 <= x. -
Nonecan be set.
- It must be
- The 3rd argument is
shuffle(Optional-Default:False-Type:bool). *If it'sTrue,datasetis randomly shuffled. - The 4th argument is
sampler(Optional-Default:None-Type:Sampler orIterable(tupleorlistofintorbool, etc)). *If it's notNone,shufflemust beFalse. - The 5th argument is
batch_sampler(Optional-Default:None-Type:Sampler orIterable(tupleorlistofintorbool, etc)): *Memos:- It must be more than 1D.
- If it's not
None,batch_samplermust be1,shufflemust beFalseorNone,samplermust beNoneanddrop_lastmust beFalse.
- The 6th argument is
num_workers(Optional-Default:0-Type:int). *It must be0 <= x. - The 7th argument is
collate_fn(Optional-Default:None-Type:function). - The 8th argument is
pin_memory(Optional-Default:False-Type:bool). - The 9th argument is
drop_last(Optional-Default:False-Type:bool). *If it'sTrue, the last incomplete batch is dropped(removed). - The 10th argument is
timeout(Optional-Default:0-Type:intorfloat): *Memos:- It must be
0 <= x. -
0disables it.
- It must be
- The 11th argument is
worker_init_fn(Optional-Default:None-Type:function). - The 12th argument is
multiprocessing_context(Optional-Default:None-Type:strormultiprocessing.context.BaseContext): *Memos:-
spawncan be set forstr. - If it's
None, the default multiprocessing context of your operating system will be used.
-
- The 13th argument is
generator(Optional-Default:None-Type:torch.Generator). *Onlycpucan be set for Generator. - There is
prefetch_factorargument(Optional-Type:function): *Memos:- It must
0 <= x. - Its default depends on
num_workers: *Memos: - If
num_workers = 0, its default isNone. - If
num_workers > 0, its default is2). - If
num_workers = 0, its must beNone. -
prefetch_factor=must be used.
- It must
- There is
persistent_workersargument(Optional-Default:False-Type:bool). *persistent_workers=must be used. - There is
pin_memory_deviceargument(Optional-Default:''-Type:str). *pin_memory_device=must be used. -
dl.shuffledon't work.
import torch
from torch.utils.data import DataLoader
my_tensor = torch.tensor([8, -3, 0, 1, 5, -2, -1, 4])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([8]),
# tensor([-3]),
# tensor([0]),
# tensor([1]),
# tensor([5]),
# tensor([-2]),
# tensor([-1]),
# tensor([4])]
dl
# <torch.utils.data.dataloader.DataLoader at 0x1ae4386d150>
dl.dataset
# tensor([8, -3, 0, 1, 5, -2, -1, 4])
dl.batch_size
# 1
dl.sampler
# <torch.utils.data.sampler.SequentialSampler at 0x1ae432cff50>
dl.batch_sampler
# <torch.utils.data.sampler.BatchSampler at 0x1ae424532d0>
dl.num_workers
# 0
dl.collate_fn
# <function torch.utils.data._utils.collate.default_collate(batch)>
dl.pin_memory
# False
dl.drop_last
# False
dl.timeout
# 0
dl.worker_init_fn
# None
dl.multiprocessing_context
# None
dl.generator
# None
dl.prefetch_factor
# None
dl.persistent_workers
# False
dl.pin_memory_device
# ''
dl = DataLoader(dataset=my_tensor, batch_size=1, shuffle=False,
sampler=None, batch_sampler=None, num_workers=0,
collate_fn=None, pin_memory=False, drop_last=False,
timeout=0, worker_init_fn=None, multiprocessing_context=None,
generator=None, prefetch_factor=None,
persistent_workers=False, pin_memory_device='')
list(dl)
# [tensor([8]),
# tensor([-3]),
# tensor([0]),
# tensor([1]),
# tensor([5]),
# tensor([-2]),
# tensor([-1]),
# tensor([4])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=1,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2]),
# tensor([5]),
# tensor([8]),
# tensor([4]),
# tensor([-1]),
# tensor([1]),
# tensor([-3]),
# tensor([0])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=2,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5]),
# tensor([8, 4]),
# tensor([-1, 1]),
# tensor([-3, 0])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=3,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8]),
# tensor([4, -1, 1])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=4,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8, 4]),
# tensor([-1, 1, -3, 0])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=5,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8, 4, -1])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=6,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8, 4, -1, 1])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=7,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8, 4, -1, 1, -3])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=8,
shuffle=True, drop_last=True)
list(dl)
# [tensor([-2, 5, 8, 4, -1, 1, -3, 0])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=9,
shuffle=True, drop_last=True)
list(dl)
# []
my_tensor = torch.tensor([[8, -3, 0, 1],
[5, -2, -1, 4]])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([[8, -3, 0, 1]]),
# tensor([[5, -2, -1, 4]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=1,
shuffle=True, drop_last=True)
list(dl)
# [tensor([[5, -2, -1, 4]]),
# tensor([[8, -3, 0, 1]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=2,
shuffle=True, drop_last=True)
list(dl)
# [tensor([[5, -2, -1, 4],
# [8, -3, 0, 1]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=3,
shuffle=True, drop_last=True)
list(dl)
# []
my_tensor = torch.tensor([[[8, -3], [0, 1]],
[[5, -2], [-1, 4]]])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([[[8, -3], [0, 1]]]),
# tensor([[[5, -2], [-1, 4]]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=1,
shuffle=True, drop_last=True)
list(dl)
# [tensor([[[5, -2], [-1, 4]]]),
# tensor([[[8, -3], [0, 1]]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=2,
shuffle=True, drop_last=True)
list(dl)
# [tensor([[[5, -2], [-1, 4]],
# [[8, -3], [0, 1]]])]
torch.manual_seed(47)
dl = DataLoader(dataset=my_tensor, batch_size=3,
shuffle=True, drop_last=True)
list(dl)
# []
my_tensor = torch.tensor([[[8., -3.], [0., 1.]],
[[5., -2.], [-1., 4.]]])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([[[8., -3.], [0., 1.]]]),
# tensor([[[5., -2.], [-1., 4.]]])]
my_tensor = torch.tensor([[[8.+0.j, -3.+0.j], [0.+0.j, 1.+0.j]],
[[5.+0.j, -2.+0.j], [-1.+0.j, 4.+0.j]]])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([[[8.+0.j, -3.+0.j], [0.+0.j, 1.+0.j]]]),
# tensor([[[5.+0.j, -2.+0.j], [-1.+0.j, 4.+0.j]]])]
my_tensor = torch.tensor([[[True, False], [True, False]],
[[False, True], [False, True]]])
dl = DataLoader(dataset=my_tensor)
list(dl)
# [tensor([[[True, False], [True, False]]]),
# tensor([[[False, True], [False, True]]])]
Top comments (0)