*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])
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.