*Memos:
- My post explains target_transform and transform & target_transform.
- My post explains transforms and transform & target_transform & transforms.
- My post explains OxfordIIITPet().
- My post explains Resize().
- My post explains Lambda.
There are the differences between transform
, target_transform
and transforms
as shown below. *It's about origin
and transform
:
*Memos:
-
transform
is for the function which must have one parameter for transform. *Resize(), RandomRotation(), RandomHorizontalFlip(), etc also can be used. -
target_transform
is for the function which must have one parameter for target(label). -
transforms
is for the function which must have two parameters for both transform and target(label). *Resize(), RandomRotation(), RandomHorizontalFlip(), etc also can be used. - Both
transform
andtarget_transform
can be used at the same time. -
transforms
cannot be used withtransform
and/ortarget_transform
at the same time. - According to my experiments,
target_transform
andtransforms
are useless.
<origin>
from torchvision.datasets import OxfordIIITPet origin_data = OxfordIIITPet( root="data" ) origin_data[0] # (<PIL.Image.Image image mode=RGB size=394x500>, 0) origin_data[50] # (<PIL.Image.Image image mode=RGB size=500x333>, 1) origin_data[100] # (<PIL.Image.Image image mode=RGB size=333x500>, 2)
<transform>
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import Resize tfresize100_50_data = OxfordIIITPet( root="data", transform=Resize(size=[100, 50]) ) tfresize100_50_data[0] # (<PIL.Image.Image image mode=RGB size=50x100>, 0) tfresize100_50_data[50] # (<PIL.Image.Image image mode=RGB size=50x100>, 1) tfresize100_50_data[100] # (<PIL.Image.Image image mode=RGB size=50x100>, 2)
from torchvision.datasets import OxfordIIITPet def tf_func(transform): return transform tf_func_data = OxfordIIITPet( root="data", transform=tf_func # transform=lambda transform: transform ) tf_func_data[0] # (<PIL.Image.Image image mode=RGB size=394x500>, 0) tf_func_data[50] # (<PIL.Image.Image image mode=RGB size=500x333>, 1) tf_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] tf_func_data = OxfordIIITPet( root="data", transform=tf_func # transform=lambda transform: [0, 1, 2] ) tf_func_data[0] # ([0, 1, 2], 0) tf_func_data[50] # ([0, 1, 2], 1) tf_func_data[100] # ([0, 1, 2], 2)
from torchvision.datasets import OxfordIIITPet def tf_func(): return [0, 1, 2] tf_func_data = OxfordIIITPet( root="data", transform=tf_func # transform=lambda: [0, 1, 2] ) tf_func_data[0] # TypeError: tf_func() takes 0 positional arguments but 1 was given
from torchvision.datasets import OxfordIIITPet def tf_func(transform, target): return [0, 1, 2] tf_func_data = OxfordIIITPet( root="data", transform=tf_func # transform=lambda transform, target: [0, 1, 2] ) tf_func_data[0] # TypeError: tf_func() missing 1 required positional argument: 'target'
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.