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 ortensor
ofint
,float
,complex
orbool
). *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
. -
None
can be set.
- It must be
- The 3rd argument is
shuffle
(Optional-Default:False
-Type:bool
). *If it'sTrue
,dataset
is randomly shuffled. - The 4th argument is
sampler
(Optional-Default:None
-Type:Sampler orIterable
(tuple
orlist
ofint
orbool
, etc)). *If it's notNone
,shuffle
must beFalse
. - The 5th argument is
batch_sampler
(Optional-Default:None
-Type:Sampler orIterable
(tuple
orlist
ofint
orbool
, etc)): *Memos:- It must be more than 1D.
- If it's not
None
,batch_sampler
must be1
,shuffle
must beFalse
orNone
,sampler
must beNone
anddrop_last
must 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:int
orfloat
): *Memos:- It must be
0 <= x
. -
0
disables 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:str
ormultiprocessing.context.BaseContext
): *Memos:-
spawn
can 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). *Onlycpu
can be set for Generator. - There is
prefetch_factor
argument(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_workers
argument(Optional-Default:False
-Type:bool
). *persistent_workers=
must be used. - There is
pin_memory_device
argument(Optional-Default:''
-Type:str
). *pin_memory_device=
must be used. -
dl.shuffle
don'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)