*Memos:
- My post explains origin and transform.
- My post explains target_transform and transform & target_transform.
There are the differences between transform
, target_transform
and transforms
as shown below. *It's about transforms and transform & target_transform & transforms:
<transforms>
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import Resize tfsresize100_50_func_data = OxfordIIITPet( root="data", transforms=Resize(size=[100, 50]) ) tfsresize100_50_func_data[0] # (<PIL.Image.Image image mode=RGB size=50x100>, 0) tfsresize100_50_func_data[50] # (<PIL.Image.Image image mode=RGB size=50x100>, 1) tfsresize100_50_func_data[100] # (<PIL.Image.Image image mode=RGB size=50x100>, 2)
from torchvision.datasets import OxfordIIITPet def tfs_func(transform, target): return [transform, target] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda transform, target: [transform, target] ) tfs_func_data[0] # (<PIL.Image.Image image mode=RGB size=394x500>, 0) tfs_func_data[50] # (<PIL.Image.Image image mode=RGB size=500x333>, 1) tfs_func_data[100] # (<PIL.Image.Image image mode=RGB size=333x500>, 2)
from torchvision.datasets import OxfordIIITPet def tfs_func(transform, target): return [target, transform] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda transform, target: [target, transform] ) tfs_func_data[0] # (0, <PIL.Image.Image image mode=RGB size=394x500>) tfs_func_data[50] # (1, <PIL.Image.Image image mode=RGB size=500x333>) tfs_func_data[100] # (2, <PIL.Image.Image image mode=RGB size=333x500>)
from torchvision.datasets import OxfordIIITPet def tfs_func(transform, target): return [[0, 1, 2], [3, 4, 5]] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda transform, target: [[0, 1, 2], [3, 4, 5]] ) tfs_func_data[0] # ([0, 1, 2], [3, 4, 5]) tfs_func_data[50] # ([0, 1, 2], [3, 4, 5]) tfs_func_data[100] # ([0, 1, 2], [3, 4, 5])
from torchvision.datasets import OxfordIIITPet def tfs_func(): return [[0, 1, 2], [3, 4, 5]] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda: [[0, 1, 2], [3, 4, 5]] ) tfs_func_data[0] # TypeError: tfs_func() takes 0 positional arguments but 2 were given
from torchvision.datasets import OxfordIIITPet def tfs_func(transform): return [[0, 1, 2], [3, 4, 5]] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda transform: [[0, 1, 2], [3, 4, 5]] ) tfs_func_data[0] # TypeError: tfs_func() takes 1 positional argument but 2 were given
from torchvision.datasets import OxfordIIITPet def tfs_func(transform, target, param): return [[0, 1, 2], [3, 4, 5]] tfs_func_data = OxfordIIITPet( root="data", transforms=tfs_func # transforms=lambda transform, target, param: [[0, 1, 2], [3, 4, 5]] ) tfs_func_data[0] # TypeError: tfs_func() missing 1 required positional argument: 'param'
<transform & target_transform & transforms>
from torchvision.datasets import OxfordIIITPet def tf_func(transform): return [0, 1, 2] def tgt_func(target): return [3, 4, 5] def tfs_func(transform, target): return [[0, 1, 2], [3, 4, 5]] tf_tfs_func_data = OxfordIIITPet( root="data", transform=tf_func, transforms=tfs_func # transform=lambda transform: [0, 1, 2], # transforms=lambda transform, target: [[0, 1, 2], [3, 4, 5]] ) # ValueError: Only transforms or transform/target_transform can be passed # as argument tgt_tfs_func_data = OxfordIIITPet( root="data", target_transform=tgt_func, transforms=tfs_func # target_transform=lambda target: [3, 4, 5], # transforms=lambda transform, target: [[0, 1, 2], [3, 4, 5]] ) # ValueError: Only transforms or transform/target_transform can be passed # as argument tf_tgt_tfs_func_data = OxfordIIITPet( root="data", transform=tf_func, target_transform=tgt_func, transforms=tfs_func # transform=lambda transform: [0, 1, 2], # target_transform=lambda target: [3, 4, 5], # transforms=lambda transform, target: [[0, 1, 2], [3, 4, 5]] ) # ValueError: Only transforms or transform/target_transform can be passed # as argument
Top comments (0)