*Memos:
- My post explains origin and transform.
- My post explains transforms and transform & target_transform & transforms.
There are the differences between transform
, target_transform
and transforms
as shown below. *It's about target_transform and transform & target_transform:
<target_transform>
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import Resize
tgtresize100_50_data = OxfordIIITPet(
root="data",
target_transform=Resize(size=[100, 50])
)
tgtresize100_50_data[0]
# (<PIL.Image.Image image mode=RGB size=394x500>, 0)
tgtresize100_50_data[50]
# (<PIL.Image.Image image mode=RGB size=500x333>, 1)
tgtresize100_50_data[100]
# (<PIL.Image.Image image mode=RGB size=333x500>, 2)
from torchvision.datasets import OxfordIIITPet
def tgt_func(target):
return target
tgt_func_data = OxfordIIITPet(
root="data",
target_transform=tgt_func
# target_transform=lambda target: target
)
tgt_func_data[0]
# (<PIL.Image.Image image mode=RGB size=394x500>, 'World')
tgt_func_data[50]
# (<PIL.Image.Image image mode=RGB size=500x333>, 'World')
tgt_func_data[100]
# (<PIL.Image.Image image mode=RGB size=333x500>, 'World')
from torchvision.datasets import OxfordIIITPet
def tgt_func(target):
return [3, 4, 5]
tgt_func_data = OxfordIIITPet(
root="data",
target_transform=tgt_func
# target_transform=lambda target: [3, 4, 5]
)
tgt_func_data[0]
# (<PIL.Image.Image image mode=RGB size=333x500>, [3, 4, 5])
tgt_func_data[50]
# (<PIL.Image.Image image mode=RGB size=500x333>, [3, 4, 5])
tgt_func_data[100]
# (<PIL.Image.Image image mode=RGB size=333x500>, [3, 4, 5])
from torchvision.datasets import OxfordIIITPet
def tgt_func():
return [3, 4, 5]
tgt_func_data = OxfordIIITPet(
root="data",
target_transform=tgt_func
# target_transform=lambda: [3, 4, 5]
)
tgt_func_data[0]
# TypeError: tgt_func() takes 0 positional arguments but 1 was given
from torchvision.datasets import OxfordIIITPet
def tgt_func(transform, target):
return [3, 4, 5]
tgt_func_data = OxfordIIITPet(
root="data",
target_transform=tgt_func
# target_transform=lambda transform, target: [3, 4, 5]
)
tgt_func_data[0]
# TypeError: tgt_func() missing 1 required positional argument: 'target'
<transform & target_transform>
from torchvision.datasets import OxfordIIITPet
def tf_func(transform):
return transform
def tgt_func(target):
return target
tf_tgt_func_data = OxfordIIITPet(
root="data",
transform=tf_func,
target_transform=tgt_func
# transform=lambda transform: transform,
# target_transform=lambda target: target
)
tf_tgt_func_data[0]
# (<PIL.Image.Image image mode=RGB size=394x500>, 0)
tf_tgt_func_data[50]
# (<PIL.Image.Image image mode=RGB size=500x333>, 1)
tf_tgt_func_data[100]
# (<PIL.Image.Image image mode=RGB size=333x500>, 2)
from torchvision.datasets import OxfordIIITPet
def tf_func(transform):
return [0, 1, 2]
def tgt_func(target):
return [3, 4, 5]
tf_tgt_func_data = OxfordIIITPet(
root="data",
transform=tf_func,
target_transform=tgt_func
# transform=lambda transform: [0, 1, 2],
# target_transform=lambda target: [3, 4, 5]
)
tf_tgt_func_data[0]
# ([0, 1, 2], [3, 4, 5])
tf_tgt_func_data[50]
# ([0, 1, 2], [3, 4, 5])
tf_tgt_func_data[100]
# ([0, 1, 2], [3, 4, 5])