transform vs target_transform vs transforms in PyTorch (2)
Super Kai (Kazuya Ito)

Super Kai (Kazuya Ito) @hyperkai

About: I'm a web developer. Buy Me a Coffee: ko-fi.com/superkai SO: stackoverflow.com/users/3247006/super-kai-kazuya-ito X(Twitter): twitter.com/superkai_kazuya FB: facebook.com/superkai.kazuya

Joined:
Oct 21, 2021

transform vs target_transform vs transforms in PyTorch (2)

Publish Date: Jun 4
0 1

Buy Me a Coffee

*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)
Enter fullscreen mode Exit fullscreen mode
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')
Enter fullscreen mode Exit fullscreen mode
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])
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode
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'
Enter fullscreen mode Exit fullscreen mode

<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)
Enter fullscreen mode Exit fullscreen mode
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])
Enter fullscreen mode Exit fullscreen mode

Comments 1 total

Add comment