1. 25 Feb, 2020 1 commit
    • Phoenix Meadowlark's avatar
      Improved error messages for transforms.functional.normalize(). (#1915) · 2f433e0a
      Phoenix Meadowlark authored
      * Improved error messages for transforms.functional.normalize().
      
      Split the original TypeError into 1. a TypeError if `tensor` is not a torch.Tensor and 2. a ValueError if `tensor` does not have the correct dimensionality.
      
      Added more detail to the error for when `tensor` has the wrong dimension to make it easier to diagnose. This is useful when this function isn't called directly by the user (e.g. when the user uses transforms.Normalize and can't directly see this functions doc string).
      
      Deleted hanging function `_is_tensor_image()`. It isn't used in this file and isn't used internally anywhere else in torchvision that I can see. (Some users will have used it despite the underscore prefix, but a quick google search for "F._is_tensor_image" suggests this is rare).
      
      * Value checking to prevent division by zero runtime crashes.
      
      Added a ValueError to check for and avoid division by zero in `div_`. Not preventing the call leads to runtime crashes, at least in some environments.
      
      * Fixed div by zero check for non-scalar inputs.
      2f433e0a
  2. 10 Feb, 2020 1 commit
  3. 29 Jan, 2020 1 commit
  4. 27 Jan, 2020 1 commit
    • abdjava's avatar
      Fixed typo in comments (#1784) · 035ed162
      abdjava authored
      I have fixed a typo that was persent in the Normalize class changed line 150 from     ``input[channel] = (input[channel] - mean[channel]) / std[channel]`` to     ``output[channel] = (input[channel] - mean[channel]) / std[channel]``
      035ed162
  5. 22 Jan, 2020 2 commits
  6. 19 Dec, 2019 1 commit
  7. 04 Dec, 2019 1 commit
  8. 05 Nov, 2019 1 commit
    • Ankit Jha's avatar
      [WIP] Add Scriptable Transform: Grayscale (#1505) · 8909ff43
      Ankit Jha authored
      * Add Scriptable Transform: Grayscale
      
      * add scriptable transforms: rgb_to_grayscale
      
      * add scriptable transform: rgb_to_grayscale
      
      * add scriptable transform: rgb_to_grayscale
      
      * add scriptable transform: rgb_to_grayscale
      
      * update code: rgb_to_grayscale
      
      * add test: rgb_to_grayscale
      
      * update parameters: rgb_to_grayscale
      
      * add scriptable transform: rgb_to_grayscale
      
      * update rgb_to_grayscale
      
      * update rgb_to_grayscale
      8909ff43
  9. 29 Oct, 2019 1 commit
    • pedrofreire's avatar
      Make shear operation area preserving (#1529) · c226bb95
      pedrofreire authored
      * Improve readability of affine transformation code
      
      * Make shear transformation area preserving
      
      The previous shear implementation did not preserve area, and we
      implement a version that does.
      
      The formula used was verified with the following sympy code:
      
      from sympy import Matrix, cos, sin, tan, simplify
      from sympy.abc import x, y, phi
      
      Xs = Matrix(
              [[1, -tan(x)],
               [0, 1]]
              )
      
      Ys = Matrix(
              [[1, 0],
               [-tan(y), 1]]
              )
      
      R = Matrix(
              [[cos(phi), -sin(phi)],
               [sin(phi), cos(phi)]]
              )
      
      RSS = Matrix(
              [[cos(phi - y)/cos(y), -cos(phi - y)*tan(x)/cos(y) - sin(phi)],
               [sin(phi - y)/cos(y), -sin(phi - y)*tan(x)/cos(y) + cos(phi)]])
      
      print(simplify(R * Ys * Xs - RSS))
      
      One thing that is not clear (and could be tested) is whether avoiding
      the explicit products and calculations in _get_inverse_affine_matrix
      really gives performance benefits - compared to doing the explicit
      calculation done in _test_transformation.
      
      * Use np.matmul instead of @
      
      The @ syntax is not supported in Python 2.
      c226bb95
  10. 26 Oct, 2019 1 commit
    • pedrofreire's avatar
      Add adjustment operations for RGB Tensor Images. (#1525) · e79caddf
      pedrofreire authored
      * Add adjustment operations for RGB Tensor Images.
      
      Right now, we have operations on PIL images, but we want to have a version of the opeartions that act directly on Tensor images.
      
      Here, we add such operations for adjust_brightness, adjust_contrast and adjust_saturation.
      
      In PIL, those functions are implemented by generating an degenerate image from the first, and then interpolating them together.
      - https://github.com/python-pillow/Pillow/blob/master/src/PIL/ImageEnhance.py
      - https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Blend.c
      
      A few caveats:
      * Since PIL operates on uint8, and the tensor operations might be on float, we can get slightly different values because of int truncation.
      * We assume here the images are RGB; in particular, to handle an alpha channel, we need to check whether it is present, in which case we copy it to the final image.
      
      * Keep dtype and use broadcast in adjust operations
      
      - We make our operations have input.dtype == output.dtype, at the cost of
      adding a few type checks and branches.
      
      - By using Tensor broadcast, we can simplify the calls to _blend.
      
      * Use is_floating_point to check dtype.
      
      * Remove unpacking in tuple
      
      It seems Python 2 does not support this type of unpacking, so it broke
      Python 2 builds. This should fix it.
      
      * Add from __future__ import division for Python 2
      e79caddf
  11. 18 Oct, 2019 2 commits
    • ekka's avatar
      Make crop scriptable (#1379) · d194082c
      ekka authored
      * Make crop torchscriptable
      
      Relevant #1375
      
      * Invert x and y axis
      
      * fix lint
      
      * Add crop test
      
      * revert deletion of space in functional
      
      * add import random
      
      * add dimension in doc
      
      * add import
      
      * fix flake8
      
      * change to self.assert*
      
      * convert to uint8
      
      * assertTrue
      
      * lint
      d194082c
    • Surgan Jandial's avatar
      PILLOW_VERSION deprecation updates (#1501) · b8ef5322
      Surgan Jandial authored
      * doc-build fixed
      
      * deprecation fixes
      
      * deprecation updates
      b8ef5322
  12. 16 Oct, 2019 1 commit
  13. 08 Oct, 2019 1 commit
  14. 30 Sep, 2019 1 commit
  15. 24 Sep, 2019 1 commit
    • Zhicheng Yan's avatar
      Video transforms (#1353) · 64917bcc
      Zhicheng Yan authored
      * video transforms
      
      * [video transforms]in ToTensorVideo, divide value by 255.0
      
      * [video transforms] fix a bug
      
      * fix linting
      
      * Make changes backwards-compatible
      64917bcc
  16. 11 Sep, 2019 1 commit
  17. 06 Sep, 2019 1 commit
  18. 30 Aug, 2019 1 commit
  19. 09 Jul, 2019 1 commit
  20. 06 Jul, 2019 1 commit
    • Zhun Zhong's avatar
      Fix bug to RandomErasing (#1095) · 34833427
      Zhun Zhong authored
      * Fix bug to Random Erasing
      
      1. Avoid forever loop for getting parameters of erase.
      2. replace' img_b' by 'img_c', because it indicates the channel.
      3. replace v = torch.rand([img_c, h, w]) by v = torch.empty([img_c, h, w], dtype=torch.float32).normal_(). Normally distributed achieves better performance.
      
      * add test
      
      * Update test_transforms.py
      
      * Update transforms.py
      
      * Update test_transforms.py
      
      * Update transforms.py
      
      * Update functional.py
      34833427
  21. 04 Jul, 2019 1 commit
    • ekka's avatar
      Minor optimization to RandomErasing (#1087) · 793c4e82
      ekka authored
      * Minor optimization to RandomErasing
      
      This PR adds an additional check on `p` argument and prevents computing `img.shape` multiple times.
      
      * linting
      793c4e82
  22. 03 Jul, 2019 1 commit
  23. 28 Jun, 2019 2 commits
  24. 24 Jun, 2019 1 commit
    • Zhun Zhong's avatar
      transforms: add Random Erasing for image augmentation (#909) · 3254560b
      Zhun Zhong authored
      * add erase function
      
      * add Random Erasing
      
      * Update transforms.py
      
      * Update transforms.py
      
      * add test for random erasing
      
      * Update test_transforms.py
      
      * fix flake8
      
      * Update test_transforms.py
      
      * Update functional.py
      
      * Update test_transforms.py
      
      * fix bug for per-pixel erasing
      
      * Update transforms.py
      
      * specific for coordinate (x, y)
      
      * add raise TypeError for img
      
      * Update transforms.py
      
      * Update transforms.rst
      3254560b
  25. 20 Jun, 2019 2 commits
  26. 14 Jun, 2019 2 commits
  27. 05 Jun, 2019 1 commit
  28. 21 May, 2019 1 commit
  29. 14 May, 2019 1 commit
  30. 06 May, 2019 1 commit
  31. 02 May, 2019 1 commit
  32. 25 Apr, 2019 1 commit
  33. 09 Apr, 2019 1 commit
  34. 29 Mar, 2019 1 commit
  35. 26 Mar, 2019 1 commit