1. 28 Oct, 2021 1 commit
  2. 04 Oct, 2021 1 commit
    • Philip Meier's avatar
      Add ufmt (usort + black) as code formatter (#4384) · 5f0edb97
      Philip Meier authored
      
      
      * add ufmt as code formatter
      
      * cleanup
      
      * quote ufmt requirement
      
      * split imports into more groups
      
      * regenerate circleci config
      
      * fix CI
      
      * clarify local testing utils section
      
      * use ufmt pre-commit hook
      
      * split relative imports into local category
      
      * Revert "split relative imports into local category"
      
      This reverts commit f2e224cde2008c56c9347c1f69746d39065cdd51.
      
      * pin black and usort dependencies
      
      * fix local test utils detection
      
      * fix ufmt rev
      
      * add reference utils to local category
      
      * fix usort config
      
      * remove custom categories sorting
      
      * Run pre-commit without fixing flake8
      
      * got a double import in merge
      Co-authored-by: default avatarNicolas Hug <nicolashug@fb.com>
      5f0edb97
  3. 29 Jan, 2021 1 commit
  4. 07 Jan, 2021 1 commit
  5. 22 Dec, 2020 1 commit
  6. 01 Dec, 2020 1 commit
    • Francisco Massa's avatar
      concatenate small tensors into big ones to reduce the use of shared f… (#1795) · 9fc6522d
      Francisco Massa authored
      * concatenate small tensors into big ones to reduce the use of shared file descriptor (#1694)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1694
      
      
      
      - PT dataloader forks worker process to speed up the fetching of dataset example.  The recommended way of multiprocess context is `forkserver` rather than `fork`.
      
      - Main process and worker processes will share the dataset class instance, which avoid duplicating the dataset and save memory. In this process, `ForkPickler(..).dumps(...)` will be called to serialize the objects, including objects within dataset instance recursively. `VideoClips` instance internally uses O(N) `torch.Tensor` to store per-video information, such as pts, and possible clips, where N is the No. of videos.
      
      - During dumping, each `torch.Tensor` will use one File Descriptor (FD). The OS default max limit of FD is 65K by using `ulimit -n` to query. The number of tensors in `VideoClips` often exceeds the limit.
      
      - To resolve this issue, we use a few big tensors by concatenating small tensors in the `__getstate__()` method, which will be called during pickling. This will only require O(1) tensors.
      
      - When this diff is landed, we can abondon D19173248
      
      In D19173397, in ClassyVision, we change the mp context from `fork` to `forkserver`, and finally can run the PT dataloader without hanging issues.
      
      Reviewed By: fmassa
      
      Differential Revision: D19179991
      
      fbshipit-source-id: c8716775c7c154aa33d93b25d112d2a59ea688a9
      
      * Try to fix Windows
      
      * Try fix Windows v2
      
      * Disable tests on Windows
      
      * Add back necessary part
      
      * Try fix OSX (and maybe Windows)
      
      * Fix
      
      * Try enabling Windows
      Co-authored-by: default avatarZhicheng Yan <zyan3@fb.com>
      9fc6522d
  7. 26 Nov, 2020 1 commit
  8. 22 Jun, 2020 1 commit
  9. 17 Mar, 2020 1 commit
    • Francisco Massa's avatar
      Update video reader to use new decoder (#1978) · 32e16805
      Francisco Massa authored
      * Base decoder for video. (#1747)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1747
      
      Pull Request resolved: https://github.com/pytorch/vision/pull/1746
      
      Added the implementation of ffmpeg based decoder with functionality that can be used in VUE and TorchVision.
      
      Reviewed By: fmassa
      
      Differential Revision: D19358914
      
      fbshipit-source-id: abb672f89bfaca6351dda2354f0d35cf8e47fa0f
      
      * Integrated base decoder into VideoReader class and video_utils.py (#1766)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1766
      
      Replaced FfmpegDecoder (incompativle with VUE) by base decoder (compatible with VUE).
      Modified python utilities video_utils.py for internal simplification. Public interface got preserved.
      
      Reviewed By: fmassa
      
      Differential Revision: D19415903
      
      fbshipit-source-id: 4d7a0158bd77bac0a18732fe4183fdd9a57f6402
      
      * Optimizating base decoder performance. (#1852)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1852
      
      Changed base decoder internals for a faster clip processing.
      
      Reviewed By: stephenyan1231
      
      Differential Revision: D19748379
      
      fbshipit-source-id: 58a435f0a0b25545e7bd1a3edb0b1d558176a806
      
      * Minor fix and decoder class members access.
      
      Summary:
      Found and fix a bug in cropping algorithm (simple mistyping).
      Also derived classes need access to some decoder class members, like initialization parameters - make it protected.
      
      Reviewed By: stephenyan1231, fmassa
      
      Differential Revision: D19895076
      
      fbshipit-source-id: 691336c8e18526b085ae5792ac3546bc387a6db9
      
      * Added missing header for less dependencies. (#1898)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1898
      
      Include streams/samplers shouldn't depend on decoder headers. Add dependencies directly to the place where they are required.
      
      Reviewed By: stephenyan1231
      
      Differential Revision: D19911404
      
      fbshipit-source-id: ef322a053708405c02cee4562b456b1602fb12fc
      
      * Implemented VUE Asynchronous Decoder
      
      Summary: For Mothership we have found that asynchronous decoder provides a better performance.
      
      Differential Revision: D20026194
      
      fbshipit-source-id: 627b91844b4e3f917002031dd32cb19c239f4ba8
      
      * fix a bug in API read_video_from_memory (#1942)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1942
      
      In D18720474, it introduces a bug in `read_video_from_memory` API. Thank weiyaowang for reporting it.
      
      Reviewed By: weiyaowang
      
      Differential Revision: D20270179
      
      fbshipit-source-id: 66348c99a5ad1f9129b90e934524ddfaad59de03
      
      * extend decoder to support new video_max_dimension argument (#1924)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1924
      
      Extend `video reader` decoder python API in Torchvision to support a new argument `video_max_dimension`. This enables the new video decoding use cases. When setting `video_width=0`, `video_height=0`, `video_min_dimension != 0`, and `video_max_dimension != 0`, we can rescale the video clips so that its spatial resolution (height, width) becomes
       - (video_min_dimension, video_max_dimension) if original height < original width
       - (video_max_dimension, video_min_dimension) if original height >= original width
      
      This is useful at video model testing stage, where we perform fully convolution evaluation and take entire video frames without cropping as input. Previously, for instance we can only set `video_width=0`, `video_height=0`, `video_min_dimension = 128`, which will preserve aspect ratio. In production dataset, there are a small number of videos where aspect ratio is either extremely large or small, and when the shorter edge is rescaled to 128, the longer edge is still large. This will easily cause GPU memory OOM when we sample multiple video clips, and put them in a single minibatch.
      
      Now, we can set (for instance) `video_width=0`, `video_height=0`, `video_min_dimension = 128` and `video_max_dimension = 171` so that the rescale resolution is either (128, 171) or (171, 128) depending on whether original height is larger than original width. Thus, we are less likely to have gpu OOM because the spatial size of video clips is determined.
      
      Reviewed By: putivsky
      
      Differential Revision: D20182529
      
      fbshipit-source-id: f9c40afb7590e7c45e6908946597141efa35f57c
      
      * Fixing samplers initialization (#1967)
      
      Summary:
      Pull Request resolved: https://github.com/pytorch/vision/pull/1967
      
      
      
      No-ops for torchvision diff, which fixes samplers.
      
      Differential Revision: D20397218
      
      fbshipit-source-id: 6dc4d04364f305fbda7ca4f67a25ceecd73d0f20
      
      * Exclude C++ test files
      Co-authored-by: default avatarYuri Putivsky <yuri@fb.com>
      Co-authored-by: default avatarZhicheng Yan <zyan3@fb.com>
      32e16805
  10. 28 Jan, 2020 1 commit
  11. 16 Dec, 2019 1 commit
    • Oana Florescu's avatar
      VideoClips windows fixes (#1661) · 757ecfb0
      Oana Florescu authored
      * remove windows skips from video_utils tests, now that they pass
      
      * replace lambda in videoclips in order to be pickled on windows and update tests
      757ecfb0
  12. 10 Dec, 2019 1 commit
  13. 07 Nov, 2019 1 commit
  14. 31 Oct, 2019 1 commit
  15. 29 Oct, 2019 1 commit
  16. 08 Oct, 2019 1 commit
  17. 03 Oct, 2019 1 commit
  18. 24 Sep, 2019 2 commits
  19. 23 Sep, 2019 1 commit
  20. 31 Jul, 2019 2 commits
    • Francisco Massa's avatar
      Move RandomClipSampler to references (#1186) · 94c94170
      Francisco Massa authored
      * Move RandomClipSampler to references
      
      * Lint and bugfix
      94c94170
    • Francisco Massa's avatar
      Video reference scripts (#1180) · 5c0b7f31
      Francisco Massa authored
      * Copy classification scripts for video classification
      
      * Initial version of video classification
      
      * add version
      
      * Training of r2plus1d_18 on kinetics work
      
      Gives even slightly better results than expected, with 57.336 top1 clip accuracy. But we count some clips twice in this evaluation
      
      * Cleanups on training script
      
      * Lint
      
      * Minor improvements
      
      * Remove some hacks
      
      * Lint
      5c0b7f31
  21. 26 Jul, 2019 1 commit
  22. 23 Jul, 2019 1 commit
  23. 19 Jul, 2019 1 commit
    • Francisco Massa's avatar
      Add VideoClips and Kinetics dataset (#1077) · 5d1372c0
      Francisco Massa authored
      * Add VideoClips and Kinetics dataset
      
      * Lint + add back missing line
      
      * Adds ClipSampler following Bruno comment
      
      * Change name following Bruno's suggestion
      
      * Enable specifying a target framerate
      
      * Fix test_io for new interface
      
      * Add comment mentioning drop_last behavior
      
      * Make compute_clips more robust
      
      * Flake8
      
      * Fix for Python2
      5d1372c0