Summary: Now that we have SQLAlchemy 2.0, we can fully use them.
Reviewed By: bottler
Differential Revision: D66920096
fbshipit-source-id: 25c0ea1c4f7361e66348035519627dc961b9e6e6
Summary:
Converts the directory specified to use the Ruff formatter in pyfmt
ruff_dog
If this diff causes merge conflicts when rebasing, please run
`hg status -n -0 --change . -I '**/*.{py,pyi}' | xargs -0 arc pyfmt`
on your diff, and amend any changes before rebasing onto latest.
That should help reduce or eliminate any merge conflicts.
allow-large-files
Reviewed By: bottler
Differential Revision: D66472063
fbshipit-source-id: 35841cb397e4f8e066e2159550d2f56b403b1bef
Summary:
- Hipified Pytorch Pulsar
- Created separate target for Pulsar tests and enabled RE testing
- Pytorch3D full test suite requires additional work like fixing EGL
dependencies on AMD
Reviewed By: danzimm
Differential Revision: D61339912
fbshipit-source-id: 0d10bc966e4de4a959f3834a386bad24e449dc1f
Summary: `c10::optional` is an alias for `std::optional`. Let's remove the alias and use the real thing.
Reviewed By: meyering
Differential Revision: D63402341
fbshipit-source-id: 241383e7ca4b2f3f1f9cac3af083056123dfd02b
Summary: `c10::optional` is an alias for `std::optional`. Let's remove the alias and use the real thing.
Reviewed By: palmje
Differential Revision: D63409387
fbshipit-source-id: fb6db59a14db9e897e2e6b6ad378f33bf2af86e8
Summary: these are failing in ci
Reviewed By: das-intensity
Differential Revision: D62594666
fbshipit-source-id: 5e3a7441be2978803dc2d3e361365e0fffa7ad3b
Summary:
Make the negative index actually not an error
fixes https://github.com/facebookresearch/pytorch3d/issues/1368
Reviewed By: das-intensity
Differential Revision: D62177991
fbshipit-source-id: e5ed433bde1f54251c4d4b6db073c029cbe87343
Summary:
Apparently pytorch 2.4 is now supported as per [this closed issue](https://github.com/facebookresearch/pytorch3d/issues/1863).
Added the `2.4.0` & `2.4.1` versions to `regenerate.py` then ran that as per the `README_fb.md` which generated `config.yml` changes.
Reviewed By: bottler
Differential Revision: D62517831
fbshipit-source-id: 002e276dfe2fa078136ff2f6c747d937abbadd1a
Summary:
X-link: https://github.com/pytorch/pytorch/pull/133343
X-link: https://github.com/fairinternal/pytorch3d/pull/45
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1851
Enables pytorch3d to build on AMD. An important part of enabling this was not compiling the Pulsar backend when the target is AMD. There are simply too many kernel incompatibilites to make it work (I tried haha). Fortunately, it doesnt seem like most modern applications of pytorch3d rely on Pulsar. We should be able to unlock most of pytorch3d's goodness on AMD without it.
Reviewed By: bottler, houseroad
Differential Revision: D61171993
fbshipit-source-id: fd4aee378a3568b22676c5bf2b727c135ff710af
Summary: To avoid the installation instructions for PyTorch3D becoming out-of-date, instead of specifying certain Python versions, update to just `Python`. Reader will understand it has to be a Python version compatible with GitHub.
Reviewed By: bottler
Differential Revision: D60919848
fbshipit-source-id: 5e974970a0db3d3d32fae44e5dd30cbc1ce237a9
Summary:
* Adds a "max" option for the point_reduction input to the
chamfer_distance function.
* When combining the x and y directions, maxes the losses instead
of summing them when point_reduction="max".
* Moves batch reduction to happen after the directions are
combined.
* Adds test_chamfer_point_reduction_max and
test_single_directional_chamfer_point_reduction_max tests.
Fixes https://github.com/facebookresearch/pytorch3d/issues/1838
Reviewed By: bottler
Differential Revision: D60614661
fbshipit-source-id: 7879816acfda03e945bada951b931d2c522756eb
Summary: This diff is fixing a backwards compatibility issue in PyTorch3D's dataset API. The code ensures that the `crop_bbox_xywh` attribute is set when box_crop flag is on. This is an implementation detail that people should not really use, however some people depend on this behaviour.
Reviewed By: bottler
Differential Revision: D59777449
fbshipit-source-id: b875e9eb909038b8629ccdade87661bb2c39d529
Summary: This is not actually needed and is causing a conda-forge confusion to do with python_abi - which needs users to have `-c conda-forge` when they install pytorch3d.
Reviewed By: patricklabatut
Differential Revision: D59587930
fbshipit-source-id: 961ae13a62e1b2b2ce6d8781db38bd97eca69e65
Summary: Problems with timeouts on old builds.
Reviewed By: MichaelRamamonjisoa
Differential Revision: D58819435
fbshipit-source-id: e1976534a102ad3841f3b297c772e916aeea12cb
Summary:
Currently, it is not possible to access a sub-transform using an indexer for all 3d transforms inheriting the `Transforms3d` class.
For instance:
```python
from pytorch3d import transforms
N = 10
r = transforms.random_rotations(N)
T = transforms.Transform3d().rotate(R=r)
R = transforms.Rotate(r)
x = T[0] # ok
x = R[0] # TypeError: __init__() got an unexpected keyword argument 'matrix'
```
This is because all these classes (namely `Rotate`, `Translate`, `Scale`, `RotateAxisAngle`) inherit the `__getitem__()` method from `Transform3d` which has the [following code on line 201](https://github.com/facebookresearch/pytorch3d/blob/main/pytorch3d/transforms/transform3d.py#L201):
```python
return self.__class__(matrix=self.get_matrix()[index])
```
The four classes inheriting `Transform3d` are not initialized through a matrix argument, hence they error.
I propose to modify the `__getitem__()` method of the `Transform3d` class to fix this behavior. The least invasive way to do it I can think of consists of creating an empty instance of the current class, then setting the `_matrix` attribute manually. Thus, instead of
```python
return self.__class__(matrix=self.get_matrix()[index])
```
I propose to do:
```python
instance = self.__class__.__new__(self.__class__)
instance._matrix = self.get_matrix()[index]
return instance
```
As far as I can tell, this modification occurs no modification whatsoever for the user, except for the ability to index all 3d transforms.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1801
Reviewed By: MichaelRamamonjisoa
Differential Revision: D58410389
Pulled By: bottler
fbshipit-source-id: f371e4c63d2ae4c927a7ad48c2de8862761078de
Summary: Undoes the pytorch3d changes in D57294278 because they break builds for for PyTorch<2.1 .
Reviewed By: MichaelRamamonjisoa
Differential Revision: D57379779
fbshipit-source-id: 47a12511abcec4c3f4e2f62eff5ba99deb2fab4c
Summary:
Currently, it checks that the `2`th dimension of `p2` is the same size as the `2`th dimension of `p2` instead of `p1`.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1815
Reviewed By: MichaelRamamonjisoa
Differential Revision: D58586966
Pulled By: bottler
fbshipit-source-id: d4f723fa264f90fe368c10825c1acdfdc4c406dc
Summary: We can now move ray bundle to float dtype (e.g. from fp16 like types).
Reviewed By: bottler
Differential Revision: D57493109
fbshipit-source-id: 4e18a427e968b646fe5feafbff653811cd007981
Summary: `c10::optional` was switched to be `std::optional` after PyTorch moved to C++17. Let's eliminate `c10::optional`, if we can.
Reviewed By: albanD
Differential Revision: D57294278
fbshipit-source-id: f6f26133c43f8d92a4588f59df7d689e7909a0cd
Summary:
This diff removes a variable that was set, but which was not used.
LLVM-15 has a warning `-Wunused-but-set-variable` which we treat as an error because it's so often diagnostic of a code issue. Unused but set variables often indicate a programming mistake, but can also just be unnecessary cruft that harms readability and performance.
Removing this variable will not change how your code works, but the unused variable may indicate your code isn't working the way you thought it was. I've gone through each of these by hand, but mistakes may have slipped through. If you feel the diff needs changes before landing, **please commandeer** and make appropriate changes: there are hundreds of these and responding to them individually is challenging.
For questions/comments, contact r-barnes.
- If you approve of this diff, please use the "Accept & Ship" button :-)
Reviewed By: bottler
Differential Revision: D56886956
fbshipit-source-id: 0c515ed98b812b1c106a59e19ec90751ce32e8c0
Summary:
For larger N and Mi value (e.g. N=154, Mi=238) I notice list_to_packed() has become a bottleneck for my application. By removing the for loop and running on GPU, i see a 10-20 x speedup.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1737
Reviewed By: MichaelRamamonjisoa
Differential Revision: D54187993
Pulled By: bottler
fbshipit-source-id: 16399a24cb63b48c30460c7d960abef603b115d0
Summary:
adjusted sample_nums to match the number of columns in the image grid. It originally produced image grid with 5 axes but only 3 images and after this fix, the block would work as intended.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1768
Reviewed By: MichaelRamamonjisoa
Differential Revision: D55632872
Pulled By: bottler
fbshipit-source-id: 44d633a8068076889e49d49b8a7910dba0db37a7
Summary:
### Generalise tutorials' pip searching:
## Required Information:
This diff contains changes to several PyTorch3D tutorials.
**Purpose of this diff:**
Replace the current installation code with a more streamlined approach that tries to install the wheel first and falls back to installing from source if the wheel is not found.
**Why this diff is required:**
This diff makes it easier to cope with new PyTorch releases and reduce the need for manual intervention, as the current process involves checking the version of PyTorch in Colab and building a new wheel if it doesn't match the expected version, which generates additional work each time there is a a new PyTorch version in Colab.
**Changes:**
Before:
```
if torch.__version__.startswith("2.1.") and sys.platform.startswith("linux"):
# We try to install PyTorch3D via a released wheel.
pyt_version_str=torch.__version__.split("+")[0].replace(".", "")
version_str="".join([
f"py3{sys.version_info.minor}_cu",
torch.version.cuda.replace(".",""),
f"_pyt{pyt_version_str}"
])
!pip install fvcore iopath
!pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html
else:
# We try to install PyTorch3D from source.
!pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'
```
After:
```
pyt_version_str=torch.__version__.split("+")[0].replace(".", "")
version_str="".join([
f"py3{sys.version_info.minor}_cu",
torch.version.cuda.replace(".",""),
f"_pyt{pyt_version_str}"
])
!pip install fvcore iopath
if sys.platform.startswith("linux"):
# We try to install PyTorch3D via a released wheel.
!pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html
pip_list = !pip freeze
need_pytorch3d = not any(i.startswith("pytorch3d==") for i in pip_list)
if need_pytorch3d:
# We try to install PyTorch3D from source.
!pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'
```
Reviewed By: bottler
Differential Revision: D55431832
fbshipit-source-id: a8de9162470698320241ae8401427dcb1ce17c37