1. 06 Nov, 2019 1 commit
    • pedrofreire's avatar
      Simplify and organize test_ops. (#1551) · af225a8a
      pedrofreire authored
      * Simlify and organize test_ops.
      
      We perform the following:
      
      - Simplify the functions slow_roi_pooling, slow_ps_roi_pooling, slow_ps_roi_align and bilinear_interpolate (including finding and removing a semi-bug in slow_ps_roi_pooling, which used bin_w instead of bin_h);
      - Wrote a slow_roi_align function, that was missing;
      - Create a base class testing all combinations of forward/backward, cpu/cuda, contiguous/non-contiguous;
      - Organize all testing inside the base class with _test_forward and _test_backward (which can be easily overriden if a parciular op needs something different); an Op class then only needs to implement fn, get_script_fn, and expected_fn.
      
      A few points:
      - We are using the same inputs for all tests, and not trying all possible inputs in the domain of a given operation. One improvement would be to test more diverse inputs, and to personalize the inputs for some ops (e.g. different inputs for pooling ops and align ops).
      - Running all tests is quite slow (~1 min only for CPU tests), so that can possibly be improved.
      
      * Reduce input size used in gradcheck.
      
      gradcheck can be quite costly, and it was causing OOM errors and making
      the tests slow. By reducing the size of the input, the test speed is
      down to 3 seconds for the CPU tests.
      
      Other points:
      - We remove an unused namedtuple;
      - We inherit from object for better Python 2 compatibility;
      - We remove a hardcoded pool_size from the TorchScript functions, and
      add it as a parameter instead.
      
      * Replace Tensor by torch.Tensor in type annotations.
      
      This should fix lint errors.
      af225a8a
  2. 05 Nov, 2019 2 commits
    • Francisco Massa's avatar
      Fix inconsistent NMS implementation between CPU and CUDA (#1556) · 4897402a
      Francisco Massa authored
      * Fix inconsistent NMS implementation
      
      * Improve tests for NMS
      
      * Remove unnecessary using statement
      4897402a
    • 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
  3. 30 Oct, 2019 1 commit
  4. 29 Oct, 2019 2 commits
    • Francisco Massa's avatar
      Unify video metadata in VideoClips (#1527) · 7d509c5d
      Francisco Massa authored
      * Unify video metadata in VideoClips
      
      * Bugfix
      
      * Make tests a bit more robust
      7d509c5d
    • 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
  5. 28 Oct, 2019 2 commits
  6. 26 Oct, 2019 2 commits
    • raghuramank100's avatar
      Quantizable resnet and mobilenet models (#1471) · b4cb5765
      raghuramank100 authored
      * add quantized models
      
      * Modify mobilenet.py documentation and clean up comments
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Move fuse_model method to QuantizableInvertedResidual and clean up args documentation
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Restore relu settings to default in resnet.py
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix missing return in forward
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix missing return in forwards
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Change pretrained -> pretrained_float_models
      Replace InvertedResidual with block
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Update tests to follow similar structure to test_models.py, allowing for modular testing
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Replace forward method with simple function assignment
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix error in arguments for resnet18
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * pretrained_float_model argument missing for mobilenet
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * reference script for quantization aware training and post training quantization
      
      * reference script for quantization aware training and post training quantization
      
      * set pretrained_float_model as False and explicitly provide float model
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Address review comments:
      1. Replace forward with _forward
      2. Use pretrained models in reference train/eval script
      3. Modify test to skip if fbgemm is not supported
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix lint errors.
      Use _forward for common code between float and quantized models
      Clean up linting for reference train scripts
      Test over all quantizable models
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Update default values for args in quantization/train.py
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Update models to conform to new API with quantize argument
      Remove apex in training script, add post training quant as an option
      Add support for separate calibration data set.
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix minor errors in train_quantization.py
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Remove duplicate file
      
      * Bugfix
      
      * Minor improvements on the models
      
      * Expose print_freq to evaluate
      
      * Minor improvements on train_quantization.py
      
      * Ensure that quantized models are created and run on the specified backends
      Fix errors in test only mode
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Add model urls
      
      * Fix errors in quantized model tests.
      Speedup creation of random quantized model by removing histogram observers
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Move setting qengine prior to convert.
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix lint error
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Add readme.md
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Readme.md
      
      Summary:
      
      Test Plan:
      
      Reviewers:
      
      Subscribers:
      
      Tasks:
      
      Tags:
      
      * Fix lint
      b4cb5765
    • 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
  7. 25 Oct, 2019 1 commit
  8. 23 Oct, 2019 1 commit
    • Francisco Massa's avatar
      Unify video backend (#1514) · 97b53f96
      Francisco Massa authored
      * Unify video backend interfaces
      
      * Remove reference cycle
      
      * Make functions private and enable tests on OSX
      
      * Disable test if video_reader backend not available
      
      * Lint
      
      * Fix import after refactoring
      
      * Fix lint
      97b53f96
  9. 22 Oct, 2019 3 commits
  10. 21 Oct, 2019 3 commits
    • Philip Meier's avatar
      Remove download for ImageNet (#1457) · f46f2c15
      Philip Meier authored
      * remove download process
      
      * address comments
      
      * fix logic error
      
      * bug fixes
      
      * removed unused import
      
      * add docstrings
      
      * flake8
      
      * remove download BC
      
      * fix test
      
      * removed unused code
      
      * flake 8
      
      * add MD5 verification before extraction
      
      * add mock to test
      
      * * unify _verify_archive() method and function
      * remove force flag for parse_*_archive functions
      * cleanup
      
      * flake8
      f46f2c15
    • F-G Fernandez's avatar
      test: Updated asserts in test_io (#1496) · 371f6c8f
      F-G Fernandez authored
      * test: Updated asserts in test_io
      
      Updated all raw asserts to corresponding unittest.TestCase.assert. See #1483
      
      * test: Fixed test_io
      
      In order to use unittest.TestCase for asserts in temp_video, the object has to be passed itself to temp_video.
      
      * test: Updated asserts to AssertionError
      
      Switched initial raw assert to AssertionError.
      
      * test: Changed AssertionError for ValueError
      371f6c8f
    • F-G Fernandez's avatar
      test: Updated assert in test_ops (#1488) · a711c80e
      F-G Fernandez authored
      Updated all raw asserts to corresponding unittest.TestCase.assert. See #1483
      a711c80e
  11. 18 Oct, 2019 7 commits
  12. 17 Oct, 2019 1 commit
  13. 16 Oct, 2019 2 commits
  14. 15 Oct, 2019 2 commits
  15. 12 Oct, 2019 1 commit
  16. 08 Oct, 2019 1 commit
  17. 04 Oct, 2019 2 commits
  18. 03 Oct, 2019 1 commit
  19. 02 Oct, 2019 1 commit
  20. 01 Oct, 2019 1 commit
    • eellison's avatar
      Add expected result tests (#1377) · 96ec0e1d
      eellison authored
      * add expected result tests
      
      * fix wrong assertion
      
      * start with only detection models
      
      * remove unneeded rng setting
      
      * fix test
      
      * add tuple support
      
      * update test
      
      * syntax error
      
      * treat .pkl files as binary data, see : https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#_binary_files
      
      * fix test
      
      * fix elif
      
      * Map tensor results and enforce maximum pickle size
      
      * unrelated change
      
      * larger rtol
      
      * pass rtol atol around
      
      * last commit i swear...
      
      * respond to comments
      
      * fix flake
      
      * fix py2 flake
      96ec0e1d
  21. 30 Sep, 2019 1 commit
    • Chandresh Kanani's avatar
      modified code of io.read_video and io.read_video_timestamps to intepret pts... · 17e355f7
      Chandresh Kanani authored
      modified code of io.read_video and io.read_video_timestamps to intepret pts values in seconds (#1331)
      
      * modified code of io.read_video and io.read_video_timestamps to interpret pts values in seconds
      
      * changed default value for pts_unit to pts, corrected formatting
      
      * hanndliing both fractions and floats for start_pts and end_pts, added test cases for pts_unit sec
      
      * moved unit conversion logic to _read_from_stream method
      17e355f7
  22. 27 Sep, 2019 1 commit
    • eellison's avatar
      Make Googlnet & InceptionNet scriptable (#1349) · b9cbc227
      eellison authored
      * make googlnet scriptable
      
      * Remove typing import in favor of torch.jit.annotations
      
      * add inceptionnet
      
      * flake fixes
      
      * fix asssert true
      
      * add import division for torchscript
      
      * fix script compilation
      
      * fix flake, py2 division error
      
      * fix py2 division error
      b9cbc227
  23. 26 Sep, 2019 1 commit
    • Francisco Massa's avatar
      Fix nightly builds (#1374) · cae0eeee
      Francisco Massa authored
      * Fix nightly builds
      
      * Fix lint
      
      * Disable video_reader tests on Travis
      
      * Disable one more test that segfaults on Travis
      
      * Fix typo in expression
      cae0eeee