Skip to content

Commit f1b79d9

Browse files
vishwakftwsoumith
authored andcommitted
Update transforms __repr__ (#419)
* Update transforms __repr__ * Add _pil_interpolation_to_str map for obtaining strings for PIL.Image interpolation options * Fix typo
1 parent 7500373 commit f1b79d9

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

torchvision/transforms/transforms.py

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
"RandomVerticalFlip", "RandomResizedCrop", "RandomSizedCrop", "FiveCrop", "TenCrop", "LinearTransformation",
2121
"ColorJitter", "RandomRotation", "Grayscale", "RandomGrayscale"]
2222

23+
_pil_interpolation_to_str = {
24+
Image.NEAREST: 'PIL.Image.NEAREST',
25+
Image.BILINEAR: 'PIL.Image.BILINEAR',
26+
Image.BICUBIC: 'PIL.Image.BICUBIC',
27+
Image.LANCZOS: 'PIL.Image.LANCZOS',
28+
}
29+
2330

2431
class Compose(object):
2532
"""Composes several transforms together.
@@ -103,7 +110,11 @@ def __call__(self, pic):
103110
return F.to_pil_image(pic, self.mode)
104111

105112
def __repr__(self):
106-
return self.__class__.__name__ + '({0})'.format(self.mode)
113+
format_string = self.__class__.__name__ + '('
114+
if self.mode is not None:
115+
format_string += 'mode={0}'.format(self.mode)
116+
format_string += ')'
117+
return format_string
107118

108119

109120
class Normalize(object):
@@ -164,7 +175,8 @@ def __call__(self, img):
164175
return F.resize(img, self.size, self.interpolation)
165176

166177
def __repr__(self):
167-
return self.__class__.__name__ + '(size={0})'.format(self.size)
178+
interpolate_str = _pil_interpolation_to_str[self.interpolation]
179+
return self.__class__.__name__ + '(size={0}, interpolation={1})'.format(self.size, interpolate_str)
168180

169181

170182
class Scale(Resize):
@@ -240,7 +252,7 @@ def __call__(self, img):
240252
return F.pad(img, self.padding, self.fill)
241253

242254
def __repr__(self):
243-
return self.__class__.__name__ + '(padding={0})'.format(self.padding)
255+
return self.__class__.__name__ + '(padding={0}, fill={1})'.format(self.padding, self.fill)
244256

245257

246258
class Lambda(object):
@@ -388,7 +400,7 @@ def __call__(self, img):
388400
return F.crop(img, i, j, h, w)
389401

390402
def __repr__(self):
391-
return self.__class__.__name__ + '(size={0})'.format(self.size)
403+
return self.__class__.__name__ + '(size={0}, padding={1})'.format(self.size, self.padding)
392404

393405

394406
class RandomHorizontalFlip(object):
@@ -511,7 +523,12 @@ def __call__(self, img):
511523
return F.resized_crop(img, i, j, h, w, self.size, self.interpolation)
512524

513525
def __repr__(self):
514-
return self.__class__.__name__ + '(size={0})'.format(self.size)
526+
interpolate_str = _pil_interpolation_to_str[self.interpolation]
527+
format_string = self.__class__.__name__ + '(size={0}'.format(self.size)
528+
format_string += ', scale={0}'.format(round(self.scale, 4))
529+
format_string += ', ratio={0}'.format(round(self.ratio, 4))
530+
format_string += ', interpolation={0})'.format(interpolate_str)
531+
return format_string
515532

516533

517534
class RandomSizedCrop(RandomResizedCrop):
@@ -603,7 +620,7 @@ def __call__(self, img):
603620
return F.ten_crop(img, self.size, self.vertical_flip)
604621

605622
def __repr__(self):
606-
return self.__class__.__name__ + '(size={0})'.format(self.size)
623+
return self.__class__.__name__ + '(size={0}, vertical_flip={1})'.format(self.size, self.vertical_flip)
607624

608625

609626
class LinearTransformation(object):
@@ -716,7 +733,12 @@ def __call__(self, img):
716733
return transform(img)
717734

718735
def __repr__(self):
719-
return self.__class__.__name__ + '()'
736+
format_string = self.__class__.__name__ + '('
737+
format_string += 'brightness={0}'.format(self.brightness)
738+
format_string += ', contrast={0}'.format(self.contrast)
739+
format_string += ', saturation={0}'.format(self.saturation)
740+
format_string += ', hue={0})'.format(self.hue)
741+
return format_string
720742

721743

722744
class RandomRotation(object):
@@ -777,7 +799,13 @@ def __call__(self, img):
777799
return F.rotate(img, angle, self.resample, self.expand, self.center)
778800

779801
def __repr__(self):
780-
return self.__class__.__name__ + '(degrees={0})'.format(self.degrees)
802+
format_string = self.__class__.__name__ + '(degrees={0}'.format(self.degrees)
803+
format_string += ', resample={0}'.format(self.resample)
804+
format_string += ', expand={0}'.format(self.expand)
805+
if self.center is not None:
806+
format_string += ', center={0}'.format(self.center)
807+
format_string += ')'
808+
return format_string
781809

782810

783811
class Grayscale(object):
@@ -807,7 +835,7 @@ def __call__(self, img):
807835
return F.to_grayscale(img, num_output_channels=self.num_output_channels)
808836

809837
def __repr__(self):
810-
return self.__class__.__name__ + '()'
838+
return self.__class__.__name__ + '(num_output_channels={0})'.format(self.num_output_channels)
811839

812840

813841
class RandomGrayscale(object):
@@ -841,4 +869,4 @@ def __call__(self, img):
841869
return img
842870

843871
def __repr__(self):
844-
return self.__class__.__name__ + '()'
872+
return self.__class__.__name__ + '(p={0})'.format(self.p)

0 commit comments

Comments
 (0)