1. 02 Dec, 2020 1 commit
    • Zhengyang Feng's avatar
      Fill color support for tensor affine transforms (#2904) · 21deb4d0
      Zhengyang Feng authored
      
      
      * Fill color support for tensor affine transforms
      
      * PEP fix
      
      * Docstring changes and float support
      
      * Docstring update for transforms and float type cast
      
      * Cast only for Tensor
      
      * Temporary patch for lack of Union type support, plus an extra unit test
      
      * More plausible bilinear filling for tensors
      
      * Keep things simple & New docstrings
      
      * Fix lint and other issues after merge
      
      * make it in one line
      
      * Docstring and some code modifications
      
      * More tests and corresponding changes for transoforms and docstring changes
      
      * Simplify test configs
      
      * Update test_functional_tensor.py
      
      * Update test_functional_tensor.py
      
      * Move assertions
      Co-authored-by: default avatarvfdev <vfdev.5@gmail.com>
      21deb4d0
  2. 27 Nov, 2020 2 commits
  3. 20 Nov, 2020 1 commit
    • Alexey Demyanchuk's avatar
      Add explicit check for number of channels (#3013) · a51c49e4
      Alexey Demyanchuk authored
      
      
      * Add explicit check for number of channels
      
      Example why you need to check it:
      `M = torch.randint(low=0, high=2, size=(6, 64, 64), dtype = torch.float)`
      When you put this input through to_pil_image without mode argument, it converts to uint8 here:
      ```
      if pic.is_floating_point() and mode != 'F':
                  pic = pic.mul(255).byte()
      ```
      and change the mode to RGB here:
      ```
      if mode is None and npimg.dtype == np.uint8:
                  mode = 'RGB'
      ```
      Image.fromarray doesn't raise if provided with mode RGB and just cut number of channels from what you have to 3
      
      * Check number of channels before processing
      
      * Add test for invalid number of channels
      
      * Add explicit check for number of channels
      
      Example why you need to check it:
      `M = torch.randint(low=0, high=2, size=(6, 64, 64), dtype = torch.float)`
      When you put this input through to_pil_image without mode argument, it converts to uint8 here:
      ```
      if pic.is_floating_point() and mode != 'F':
                  pic = pic.mul(255).byte()
      ```
      and change the mode to RGB here:
      ```
      if mode is None and npimg.dtype == np.uint8:
                  mode = 'RGB'
      ```
      Image.fromarray doesn't raise if provided with mode RGB and just cut number of channels from what you have to 3
      
      * Check number of channels before processing
      
      * Add test for invalid number of channels
      
      * Put check after channel dim unsqueeze
      
      * Add test if error message is matching
      
      * Delete redundant code
      
      * Bug fix in checking for bad types
      Co-authored-by: default avatarDemyanchuk <demyanca@mh-hannover.local>
      Co-authored-by: default avatarvfdev <vfdev.5@gmail.com>
      a51c49e4
  4. 16 Oct, 2020 1 commit
  5. 07 Oct, 2020 1 commit
    • Tejan Karmali's avatar
      Added GaussianBlur transform (#2658) · 4106dbb8
      Tejan Karmali authored
      
      
      * Added GaussianBlur transform
      
      * fixed linting
      
      * supports fixed radius for kernel
      
      * [WIP] New API for gaussian_blur
      
      * Gaussian blur with kernelsize and sigma API
      
      * Fixed implementation and updated tests
      
      * Added large input case and refactored gt into a file
      
      * Updated docs
      
      * fix kernel dimesnions order while creating kernel
      
      * added tests for exception handling of gaussian blur
      
      * fix linting, bug in tests
      
      * Fixed failing tests, refactored code and other minor fixes
      Co-authored-by: default avatarvfdev-5 <vfdev.5@gmail.com>
      4106dbb8
  6. 05 Oct, 2020 1 commit
    • Brian Vaughan's avatar
      make convert_image_dtype scriptable (#2485) · c542137c
      Brian Vaughan authored
      
      
      * make convert_image_dtype scriptable
      
      * move convert dtype to functional_tensor since only works on tensors
      
      * retain availability of convert_image_dtype in functional.py
      
      * Update code and tests
      
      * Replaced int by torch.dtype
      
      * int -> torch.dtype and use F instead of F_t
      
      * Update functional_tensor.py
      Co-authored-by: default avatarvfdev-5 <vfdev.5@gmail.com>
      c542137c
  7. 30 Sep, 2020 1 commit
    • vfdev's avatar
      Fixes #2702 (#2721) · b618923c
      vfdev authored
      - Updated code and tests to support batch of tensors, e.g. input of shape (B, C, H, W).
      b618923c
  8. 23 Sep, 2020 1 commit
    • vfdev's avatar
      Normalize, LinearTransformation are scriptable (#2645) · 1b415254
      vfdev authored
      * [WIP] All transforms are now derived from torch.nn.Module
      - Compose, RandomApply, Normalize can be jit scripted
      
      * Fixed flake8
      
      * Updated code and docs
      - added getattr to Lambda and tests
      - updated code and docs of Compose
      - added failing test with append/extend on Composed.transforms
      
      * Fixed flake8
      
      * Updated code, tests and docs
      1b415254
  9. 22 Sep, 2020 1 commit
  10. 18 Sep, 2020 1 commit
  11. 03 Sep, 2020 1 commit
    • Dragos Cristian's avatar
      adjust_hue now supports inputs of type Tensor (#2566) · bb88c452
      Dragos Cristian authored
      
      
      * adjust_hue now supports inputs of type Tensor
      
      * Added comparison between original adjust_hue and its Tensor and torch.jit.script versions.
      
      * Added a few type checkings related to adjust_hue in functional_tensor.py in hopes to make F_t.adjust_hue scriptable...but to no avail.
      
      * Changed implementation of _rgb2hsv and removed useless type declaration according to PR's review.
      
      * Handled the range of hue_factor in the assertions and temporarily increased the assertLess bound to make sure that no other test fails.
      
      * Fixed some lint issues with CircleCI and added type hints in functional_pil.py as well.
      
      * Corrected type hint mistakes.
      
      * Followed PR review recommendations and added test for class interface with hue.
      
      * Refactored test_functional_tensor.py to match vfdev-5's d016cab branch by simple copy/paste and added the test_adjust_hue and ColorJitter class interface test in the same style (class interface test was removed in vfdev-5's branch for some reason).
      
      * Removed test_adjustments from test_transforms_tensor.py and moved the ColorJitter class interface test in test_transforms_tensor.py.
      
      * Added cuda test cases for test_adjustments and tried to fix conflict.
      
      * Updated tests
      - adjust hue
      - color jitter
      
      * Fixes incompatible devices
      
      * Increased tol for cuda tests
      
      * Fixes potential issue with inplace op
      - fixes irreproducible failing test on Travis CI
      
      * Reverted fmod -> %
      Co-authored-by: default avatarvfdev-5 <vfdev.5@gmail.com>
      bb88c452
  12. 28 Aug, 2020 1 commit
    • vfdev's avatar
      Unified inputs for grayscale ops and transforms (#2586) · 2eba1f04
      vfdev authored
      * [WIP] Unify ops Grayscale and RandomGrayscale
      
      * Unified inputs for grayscale op and transforms
      - deprecated F.to_grayscale in favor of F.rgb_to_grayscale
      
      * Fixes bug with fp input
      
      * [WIP] Updated code according to review
      
      * Removed unused import
      2eba1f04
  13. 20 Aug, 2020 1 commit
  14. 07 Aug, 2020 2 commits
    • vfdev's avatar
      [BC-breaking] Unified input for F.perspective (#2558) · 8c7e7bb0
      vfdev authored
      * [WIP] Added unified input perspective transformation code
      
      * Unified input for F.perspective
      - added tests
      - updated docs
      
      * Added more random test configs
      
      * Fixed the code according to PR's review
      8c7e7bb0
    • vfdev's avatar
      Unified inputs for `T.RandomRotation` (#2496) · 08af5cb5
      vfdev authored
      * Added code for F_t.rotate with test
      - updated F.affine tests
      
      * Rotate test tolerance to 2%
      
      * Fixes failing test
      
      * [WIP] RandomRotation
      
      * Unified RandomRotation with tests
      08af5cb5
  15. 06 Aug, 2020 1 commit
    • vfdev's avatar
      Fixes F.affine and F.rotate to support rectangular tensor images (#2553) · 025b71d8
      vfdev authored
      * Added code for F_t.rotate with test
      - updated F.affine tests
      
      * Rotate test tolerance to 2%
      
      * Fixes failing test
      
      * Optimized _expanded_affine_grid with a single matmul op
      
      * Recoded _compute_output_size
      
      * [WIP] recoded F_t.rotate internal methods
      
      * [WIP] Fixed F.affine to support rectangular images
      
      * Recoded _gen_affine_grid to optimized version ~ affine_grid
      - Fixes flake8
      
      * [WIP] Use _gen_affine_grid for affine and rotate
      
      * Fixed tests on square / rectangular images for affine and rotate ops
      
      * Removed redefinition of F.rotate
      - due to bad merge
      025b71d8
  16. 05 Aug, 2020 1 commit
    • vfdev's avatar
      Unified inputs for `F.rotate` (#2495) · 76662528
      vfdev authored
      * Added code for F_t.rotate with test
      - updated F.affine tests
      
      * Rotate test tolerance to 2%
      
      * Fixes failing test
      
      * Optimized _expanded_affine_grid with a single matmul op
      
      * Recoded _compute_output_size
      76662528
  17. 29 Jul, 2020 1 commit
  18. 17 Jul, 2020 1 commit
  19. 16 Jul, 2020 1 commit
    • vfdev's avatar
      Unified input for F.affine (#2444) · 5f4b5794
      vfdev authored
      * [WIP] F.affine
      
      * [WIP] F.affine + tests
      
      * Unified input for F.affine
      
      * Removed commented code
      
      * Removed unused imports
      5f4b5794
  20. 15 Jul, 2020 1 commit
  21. 08 Jul, 2020 1 commit
  22. 07 Jul, 2020 1 commit
    • vfdev's avatar
      Unified input for resized crop op (#2396) · 9b804659
      vfdev authored
      * [WIP] Unify random resized crop
      
      * Unify input for RandomResizedCrop
      
      * Fixed bugs and updated test
      
      * Added resized crop functional test
      - fixed bug with size convention
      
      * Fixed incoherent sampling
      
      * Fixed torch randint review remark
      9b804659
  23. 06 Jul, 2020 1 commit
    • vfdev's avatar
      Unified input for resize op (#2394) · e212cc86
      vfdev authored
      * [WIP] F.resize with tensor
      
      * Adapted T.Resize and F.resize with a test
      
      * According to the review, fixed copy-pasted messages and unused imports
      e212cc86
  24. 03 Jul, 2020 1 commit
  25. 30 Jun, 2020 2 commits
    • vfdev's avatar
      Improved docs and tests for (#2371) · e50c2e36
      vfdev authored
      - RandomCrop: crop with padding using all commonly supported modes
      e50c2e36
    • vfdev's avatar
      Unified Tensor/PIL crop (#2342) · a99b6bd7
      vfdev authored
      * [WIP] Unified Tensor/PIL crop
      
      * Fixed misplaced type annotation
      
      * Fixed tests
      - crop with padding
      - other tests using mising private functions: _is_pil_image, _get_image_size
      
      * Unified CenterCrop and F.center_crop
      - sorted includes in transforms.py
      - used py3 annotations
      
      * Unified FiveCrop and F.five_crop
      
      * Improved tests and docs
      
      * Unified TenCrop and F.ten_crop
      
      * Removed useless typing in functional_pil
      
      * Updated code according to the review
      - removed useless torch.jit.export
      - added missing typing return type
      - fixed F.F_pil._is_pil_image -> F._is_pil_image
      
      * Removed useless torch.jit.export
      
      * Improved code according to the review
      a99b6bd7
  26. 26 Jun, 2020 1 commit
  27. 19 Jun, 2020 1 commit
    • Vitaliy Chiley's avatar
      spelling error (#2333) · cd2b7f07
      Vitaliy Chiley authored
      I was reading through the code and noticed a few spelling errors
      orignal -> original
      maintaing -> maintaining
      cd2b7f07
  28. 11 Jun, 2020 1 commit
    • Philip Meier's avatar
      Add convert_image_dtype to functionals (#2078) · c2e8a008
      Philip Meier authored
      
      
      * add convert_image_dtype to functionals
      
      * add ConvertImageDtype transform
      
      * add test
      
      * remove underscores from numbers since they are not compatible with python<3.6
      
      * address review comments 1/3
      
      * fix torch.bool
      
      * use torch.iinfo in test
      
      * fix flake8
      
      * remove double conversion
      
      * fix flake9
      
      * bug fix
      
      * add error messages to test
      
      * disable torch.float16 and torch.half for now
      
      * add docstring
      
      * add test for consistency
      
      * move nested function to top
      
      * test in CI
      
      * dirty progress
      
      * add int to int and cleanup
      
      * lint
      Co-authored-by: default avatarPhilip Meier <meier.philip@posteo.de>
      c2e8a008
  29. 10 Jun, 2020 1 commit
  30. 04 Jun, 2020 2 commits
  31. 18 May, 2020 2 commits
    • Steven Basart's avatar
      Add pil_to_tensor to functionals (#2092) · e6d3f8c5
      Steven Basart authored
      * Adds as_tensor to functional.py
      
      Similar functionality to to_tensor without the default conversion to float and division by 255.
      Also adds support for Image mode 'L'.
      
      * Adds tests to AsTensor()
      
      Adds tests to AsTensor and removes the conversion to float and division by 255.
      
      * Adds AsTensor to transforms.py
      
      Calls the as_tensor function in functionals and adds the function AsTensor as callable from transforms.
      
      * Removes the pic.mode == 'L'
      
      This was handled by the else condition previously so I'll remove it.
      
      * Fix Lint issue
      
      Adds two line breaks between functions to fix lint issue
      
      * Replace from_numpy with as_tensor
      
      Removes the extra if conditionals and replaces from_numpy with as_tensor.
      
      * Renames as_tensor to pil_to_tensor
      
      Renames the function as_tensor to pil_to_tensor and narrows the scope of the function.  At the same time also creates a flag that defaults to True for swapping to the channels first format.
      
      * Renames AsTensor to PILToImage
      
      Renames the function AsTensor to PILToImage and modifies the description.  Adds the swap_to_channelsfirst boolean variable to indicate if the user wishes to change the shape of the input.
      
      * Add the __init__ function to PILToTensor 
      
      Add the __init__ function to PILToTensor since it contains the swap_to_channelsfirst parameter now.
      
      * fix lint issue
      
      remove trailing white space
      
      * Fix the tests
      
      Reflects the name change to PILToTensor and the parameter to the function as well as the new narrowed scope that the function only accepts PIL images.
      
      * fix tests
      
      Instead of undoing the transpose just create a new tensor and test that one.
      
      * Add the view back
      
      Add img.view(pic.size[1], pic.size[0], len(pic.getbands())) back to outside the if condition.
      
      * fix test
      
      fix conversion from torch tensor to PIL back to torch tensor.
      
      * fix lint issues
      
      * fix lint
      
      remove trailing white space
      
      * Fixed the channel swapping tensor test
      
      Torch tranpose operates differently than numpy transpose.  Changed operation to permute.
      
      * Add mode='F'
      
      Add mode information when converting to PIL Image from Float Tensor.
      
      * Added inline comments to follow shape changes
      
      * ToPILImage converts FloatTensors to uint8
      
      * Remove testing not swapping
      
      * Removes the swap_channelsfirst parameter
      
      Makes the channel swapping the default behavior.
      
      * Remove the swap_channelsfirst argument
      
      Remove the swap_channelsfirst argument and makes the swapping the default functionality.
      e6d3f8c5
    • Francisco Massa's avatar
      Fix Python lint (#2226) · e2e511be
      Francisco Massa authored
      e2e511be
  32. 04 May, 2020 1 commit
  33. 03 Apr, 2020 1 commit
  34. 02 Apr, 2020 1 commit
  35. 01 Apr, 2020 1 commit