201 Commits

Author SHA1 Message Date
Jeremy Reizenstein
75ebeeaea0 update version to 0.7.8
Summary: as title

Reviewed By: das-intensity

Differential Revision: D62588556

fbshipit-source-id: 55bae19dd1df796e83179cd29d805fcd871b6d23
2024-09-13 02:31:49 -07:00
Jeremy Reizenstein
ab793177c6 remove pytorch2.0 builds
Summary: these are failing in ci

Reviewed By: das-intensity

Differential Revision: D62594666

fbshipit-source-id: 5e3a7441be2978803dc2d3e361365e0fffa7ad3b
2024-09-13 02:07:25 -07:00
Jeremy Reizenstein
9acdd67b83 fix obj material indexing bug #1368
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
2024-09-13 02:00:49 -07:00
Nicholas Dahm
3f428d9981 pytorch 2.4.0 + 2.4.1
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
2024-09-11 15:09:43 -07:00
Josh Fromm
05cbea115a Hipify Pytorch3D (#1851)
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
2024-08-15 16:18:22 -07:00
generatedunixname89002005307016
38afdcfc68 upgrade pyre version in fbcode/vision - batch 2
Reviewed By: bottler

Differential Revision: D60992234

fbshipit-source-id: 899db6ed590ef966ff651c11027819e59b8401a3
2024-08-09 02:07:45 -07:00
Christine Sun
1e0b1d9c72 Remove Python versions from Install.md
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
2024-08-07 13:46:31 -07:00
Rebecca Chen (Python)
44702fdb4b Add "max" point reduction for chamfer distance
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
2024-08-02 10:46:07 -07:00
Jeremy Reizenstein
7edaee71a9 allow matrix_to_quaternion onnx export
Summary: Attempt to allow torch.onnx.dynamo_export(matrix_to_quaternion) to work.

Differential Revision: D59812279

fbshipit-source-id: 4497e5b543bec9d5c2bdccfb779d154750a075ad
2024-07-16 11:30:20 -07:00
Roman Shapovalov
d0d0e02007 Fix: setting FrameData.crop_bbox_xywh for backwards compatibility
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
2024-07-16 02:21:13 -07:00
Jeremy Reizenstein
4df110b0a9 remove fvcore dependency
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
2024-07-11 04:35:38 -07:00
Huy Do
51fd114d8b Forward fix internal pyre failure from D58983461
Summary:
X-link: https://github.com/pytorch/pytorch/pull/129525

Somehow, using underscore alias of some builtin types breaks pyre

Reviewed By: malfet, clee2000

Differential Revision: D59029768

fbshipit-source-id: cfa2171b66475727b9545355e57a8297c1dc0bc6
2024-06-27 07:35:18 -07:00
Jeremy Reizenstein
89653419d0 version 0.7.7
Summary: New version

Reviewed By: MichaelRamamonjisoa

Differential Revision: D58668979

fbshipit-source-id: 195eaf83e4da51a106ef72e38dbb98c51c51724c
2024-06-25 06:59:24 -07:00
Jeremy Reizenstein
7980854d44 require pytorch 2.0+
Summary: Problems with timeouts on old builds.

Reviewed By: MichaelRamamonjisoa

Differential Revision: D58819435

fbshipit-source-id: e1976534a102ad3841f3b297c772e916aeea12cb
2024-06-21 08:15:17 -07:00
Jeremy Reizenstein
51d7c06ddd MKL version fix in CI (#1820)
Summary:
Fix for "undefined symbol: iJIT_NotifyEvent" build issue,

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1820

Reviewed By: MichaelRamamonjisoa

Differential Revision: D58685326

fbshipit-source-id: 48b54367c00851cc6fbb111ca98d69a2ace8361b
2024-06-21 08:15:17 -07:00
Sergii Dymchenko
00c36ec01c Update deprecated PyTorch functions in fbcode/vision
Reviewed By: bottler

Differential Revision: D58762015

fbshipit-source-id: a0d05fe63a88d33e3f7783b5a7b2a476dd3a7449
2024-06-20 14:06:28 -07:00
vedrenne
b0462d8079 Allow indexing for classes inheriting Transform3d (#1801)
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
2024-06-17 07:48:18 -07:00
Jeremy Reizenstein
b66d17a324 Undo c10=>std optional rename
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
2024-06-17 07:09:30 -07:00
Kyle Vedder
717493cb79 Fixed last dimension size check so that it doesn't trivially pass. (#1815)
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
2024-06-17 06:00:13 -07:00
Jeremy Reizenstein
302da69461 builds for PyTorch 2.2.1 2.2.2 2.3.0 2.3.1
Summary: Build for new pytorch versions

Reviewed By: MichaelRamamonjisoa

Differential Revision: D58668956

fbshipit-source-id: 7fdfb377b370448d6147daded6a21b8db87586fb
2024-06-17 05:57:59 -07:00
Roman Shapovalov
4ae25bfce7 Moving ray bundle to float dtype
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
2024-05-30 10:06:38 -07:00
Richard Barnes
bd52f4a408 c10::optional -> std::optional in tensorboard/adhoc/Adhoc.h +9
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
2024-05-13 16:40:34 -07:00
generatedunixname89002005307016
17117106e4 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D57183103

fbshipit-source-id: 7e2f42ddc6a1fa02abc27a451987d67a00264cbb
2024-05-10 01:18:43 -07:00
Richard Barnes
aec76bb4c8 Remove unused-but-set variables in vision/fair/pytorch3d/pytorch3d/csrc/pulsar/include/renderer.render.device.h +1
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
2024-05-02 13:58:05 -07:00
Andres Suarez
47d5dc8824 Apply clang-format 18
Summary: Previously this code conformed from clang-format 12.

Reviewed By: igorsugak

Differential Revision: D56065247

fbshipit-source-id: f5a985dd8f8b84f2f9e1818b3719b43c5a1b05b3
2024-04-14 11:28:32 -07:00
generatedunixname89002005307016
fe0b1bae49 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D55650177

fbshipit-source-id: d5faa4d805bb40fe3dea70b0601e7a1382b09f3a
2024-04-02 18:11:50 -07:00
Ruishen Lyu
ccf22911d4 Optimize list_to_packed to avoid for loop (#1737)
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
2024-04-02 07:50:25 -07:00
Ashim Dahal
128be02fc0 feat: adjusted sample_nums (#1768)
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
2024-04-02 06:02:48 -07:00
Roeia Kishk
31e3488a51 Changed tutorials' pip searching
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
2024-03-28 11:24:43 -07:00
generatedunixname89002005307016
b215776f2d upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D55395614

fbshipit-source-id: 71677892b5d6f219f6df25b4efb51fb0f6b1441b
2024-03-26 22:02:22 -07:00
Cijo Jose
38cf0dc1c5 TexturesUV multiple maps
Summary: Implements the  the TexturesUV with multiple map ids.

Reviewed By: bottler

Differential Revision: D53944063

fbshipit-source-id: 06c25eb6d69f72db0484f16566dd2ca32a560b82
2024-03-12 06:59:31 -07:00
Jaap Suter
7566530669 CUDA marching_cubes fix
Summary:
Fix an inclusive vs exclusive scan mix-up that was accidentally introduced when removing the Thrust dependency (`Thrust::exclusive_scan`) and reimplementing it using `at::cumsum` (which does an inclusive scan).

This fixes two Github reported issues:

 * https://github.com/facebookresearch/pytorch3d/issues/1731
 * https://github.com/facebookresearch/pytorch3d/issues/1751

Reviewed By: bottler

Differential Revision: D54605545

fbshipit-source-id: da9e92f3f8a9a35f7b7191428d0b9a9ca03e0d4d
2024-03-07 15:38:24 -08:00
Conner Nilsen
a27755db41 Pyre Configurationless migration for] [batch:85/112] [shard:6/N]
Reviewed By: inseokhwang

Differential Revision: D54438157

fbshipit-source-id: a6acfe146ed29fff82123b5e458906d4b4cee6a2
2024-03-04 18:30:37 -08:00
Amethyst Reese
3da7703c5a apply Black 2024 style in fbcode (4/16)
Summary:
Formats the covered files with pyfmt.

paintitblack

Reviewed By: aleivag

Differential Revision: D54447727

fbshipit-source-id: 8844b1caa08de94d04ac4df3c768dbf8c865fd2f
2024-03-02 17:31:19 -08:00
Jeremy Reizenstein
f34104cf6e version 0.7.6
Summary: New version

Reviewed By: cijose

Differential Revision: D53852987

fbshipit-source-id: 962ab9f61153883df9da0601356bd6b108dc5df7
2024-02-19 03:28:54 -08:00
Jeremy Reizenstein
f247c86dc0 Update tutorials for 0.7.6
Summary:
version number changed with
`sed -i "s/2.1\./2.2./" *b`

Reviewed By: cijose

Differential Revision: D53852986

fbshipit-source-id: 1662c8e6d671321887a3263bc3880d5c33d1f866
2024-02-19 03:28:54 -08:00
Cijo Jose
ae9d8787ce Support color in cubify
Summary: The diff support colors in cubify for align = "center"

Reviewed By: bottler

Differential Revision: D53777011

fbshipit-source-id: ccb2bd1e3d89be3d1ac943eff08f40e50b0540d9
2024-02-16 08:19:12 -08:00
Jeremy Reizenstein
8772fe0de8 Make OpenGL optional in tests
Summary: Add an option to run tests without the OpenGL Renderer.

Reviewed By: patricklabatut

Differential Revision: D53573400

fbshipit-source-id: 54a14e7b2f156d24e0c561fdb279f4a9af01b793
2024-02-13 07:43:42 -08:00
Ada Martin
c292c71c1a c++ marching cubes fix
Summary:
Fixes https://github.com/facebookresearch/pytorch3d/issues/1641. The bug was caused by the mistaken downcasting of an int64_t into int, causing issues only on inputs large enough to have hashes that escaped the bounds of an int32.

Also added a test case for this issue.

Reviewed By: bottler

Differential Revision: D53505370

fbshipit-source-id: 0fdd0efc6d259cc3b0263e7ff3a4ab2c648ec521
2024-02-08 11:13:15 -08:00
Jeremy Reizenstein
d0d9cae9cd builds for PyTorch 2.1.1 2.1.2 2.2.0
Summary: Build for new pytorch versions

Reviewed By: shapovalov

Differential Revision: D53266104

fbshipit-source-id: f7aaacaf39cab3839b24f45361c36f087d0ea7c9
2024-02-07 11:56:52 -08:00
generatedunixname89002005287564
1f92c4e9d2 vision/fair
Reviewed By: zsol

Differential Revision: D53258682

fbshipit-source-id: 3f006b5f31a2b1ffdc6323d3a3b08ac46c3162ce
2024-01-31 07:43:49 -08:00
generatedunixname89002005307016
9b981f2c7e suppress errors in vision/fair/pytorch3d
Differential Revision: D53152021

fbshipit-source-id: 78be99b00abe4d992db844ff5877a89d42d468af
2024-01-26 19:10:37 -08:00
generatedunixname89002005307016
85eccbbf77 suppress errors in vision/fair/pytorch3d
Differential Revision: D53111480

fbshipit-source-id: 0f506bf29cf908e40b058ae72f51e828cd597825
2024-01-25 21:13:30 -08:00
generatedunixname89002005307016
b80ab0caf0 upgrade pyre version in fbcode/vision - batch 1
Differential Revision: D53059851

fbshipit-source-id: f5d0951186c858f90ddf550323a163e4b6d42b68
2024-01-24 23:56:06 -08:00
Dimitris Prountzos
1e817914b3 Fix compiler warning in knn.ku
Summary: This change updates the type of p2_idx from size_t to int64_t to address compiler warnings related to signed/unsigned comparison.

Reviewed By: bottler

Differential Revision: D52879393

fbshipit-source-id: de5484d78a907fccdaae3ce036b5e4a1a0a4de70
2024-01-18 12:27:16 -08:00
Ido Zachevsky
799c1cd21b Allow get_rgbd_point_cloud to take any #channels
Summary: Fixed `get_rgbd_point_cloud` to take any number of image input channels.

Reviewed By: bottler

Differential Revision: D52796276

fbshipit-source-id: 3ddc0d1e337a6cc53fc86c40a6ddb136f036f9bc
2024-01-16 03:38:26 -08:00
Abdelrahman Selim
292acc71a3 Update so3 operations for numerical stability
Summary: Replace implementations of `so3_exp_map` and `so3_log_map` in so3.py with existing more-stable implementations.

Reviewed By: bottler

Differential Revision: D52513319

fbshipit-source-id: fbfc039643fef284d8baa11bab61651964077afe
2024-01-04 02:26:56 -08:00
Jeremy Reizenstein
3621a36494 mac build fix
Summary: Fix for https://github.com/facebookresearch/pytorch3d/issues/1708

Reviewed By: patricklabatut

Differential Revision: D52480756

fbshipit-source-id: 530c0f9413970fba042eec354e28318c96e35f42
2024-01-03 07:46:54 -08:00
Abdelrahman Selim
3087ab7f62 Standardize matrix_to_quaternion output
Summary:
An OSS user has pointed out in https://github.com/facebookresearch/pytorch3d/issues/1703 that the output of matrix_to_quaternion (in that file) can be non standardized.

This diff solves the issue by adding a line of standardize at the end of the function

Reviewed By: bottler

Differential Revision: D52368721

fbshipit-source-id: c8d0426307fcdb7fd165e032572382d5ae360cde
2023-12-21 13:43:29 -08:00
Tony Tan
e46ab49a34 Submeshing TexturesAtlas for PyTorch3D 3D Rendering
Summary: Implement submeshing for TexturesAtlas and add associated test

Reviewed By: bottler

Differential Revision: D52334053

fbshipit-source-id: d54080e9af1f0c01551702736e858e3bd439ac58
2023-12-21 11:08:01 -08:00
Hassan Lotfi
8a27590c5f Submeshing TexturesUV
Summary: Implement `submeshes` for TexturesUV. Fix what Meshes.submeshes passes to the texture's submeshes function to make this possible.

Reviewed By: bottler

Differential Revision: D52192060

fbshipit-source-id: 526734962e3376aaf75654200164cdcebfff6997
2023-12-19 06:48:06 -08:00
Eric Young
06cdc313a7 PyTorch3D - Avoid flip in TexturesAtlas
Summary: Performance improvement: Use torch.lerp to map uv coordinates to the range needed for grid_sample (i.e. map [0, 1] to [-1, 1] and invert the y-axis)

Reviewed By: bottler

Differential Revision: D51961728

fbshipit-source-id: db19a5e3f482e9af7b96b20f88a1e5d0076dac43
2023-12-11 12:49:17 -08:00
Roman Shapovalov
94da8841af Align_corners switch in Volumes
Summary:
Porting this commit by davnov134 .
93a3a62800 (diff-a8e107ebe039de52ca112ac6ddfba6ebccd53b4f53030b986e13f019fe57a378)

Capability to interpret world/local coordinates with various align_corners semantics.

Reviewed By: bottler

Differential Revision: D51855420

fbshipit-source-id: 834cd220c25d7f0143d8a55ba880da5977099dd6
2023-12-07 03:07:41 -08:00
generatedunixname89002005307016
fbc6725f03 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D51902460

fbshipit-source-id: 3ffc5d7d2da5c5d4e971ee8275bd999c709e0b12
2023-12-06 20:53:53 -08:00
Jeremy Reizenstein
6b8766080d Use cuda's make_float3 in pulsar
Summary: Fixes github.com/facebookresearch/pytorch3d/issues/1680

Reviewed By: MichaelRamamonjisoa

Differential Revision: D51587889

fbshipit-source-id: e68ae32d7041fb9ea3e981cf2bde47f947a41ca2
2023-12-05 03:15:02 -08:00
sewon.jeon
c373a84400 Use updated naming to remove warning (#1687)
Summary:
diag_suppress is  deprecated from cuda

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1687

Reviewed By: MichaelRamamonjisoa

Differential Revision: D51495875

Pulled By: bottler

fbshipit-source-id: 6543a15e666238365719117bfcf5f7dac532aec1
2023-12-05 03:15:02 -08:00
sewon.jeon
7606854ff7 Fix windows build (#1689)
Summary:
Change the data type usage in the code to ensure cross-platform compatibility
long -> int64_t

<img width="628" alt="image" src="https://github.com/facebookresearch/pytorch3d/assets/6214316/40041f7f-3c09-4571-b9ff-676c625802e9">

Tested under
Win 11 and Ubuntu 22.04
with
CUDA 12.1.1 torch 2.1.1

Related issues & PR

https://github.com/facebookresearch/pytorch3d/pull/9

https://github.com/facebookresearch/pytorch3d/issues/1679

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1689

Reviewed By: MichaelRamamonjisoa

Differential Revision: D51521562

Pulled By: bottler

fbshipit-source-id: d8ea81e223c642e0e9fb283f5d7efc9d6ac00d93
2023-12-05 03:14:06 -08:00
Jeremy Reizenstein
83bacda8fb lint
Summary: Fix recent flake complaints

Reviewed By: MichaelRamamonjisoa

Differential Revision: D51811912

fbshipit-source-id: 65183f5bc7058da910e4d5a63b2250ce8637f1cc
2023-12-04 13:43:34 -08:00
generatedunixname89002005307016
f74fc450e8 suppress errors in vision/fair/pytorch3d
Differential Revision: D51645956

fbshipit-source-id: 1ae7279efa0a27bb9bc5255527bafebb84fdafd0
2023-11-28 19:10:06 -08:00
Dan Johnson
3b4f8a4980 Adding reference and context to PointsRenderer
Summary: User confusion (https://github.com/facebookresearch/pytorch3d/issues/1579) about how zbuf is used for alpha compositing. Added small description and reference to paper to help give some context.

Reviewed By: bottler

Differential Revision: D51374933

fbshipit-source-id: 8c489a5b5d0a81f0d936c1348b9ade6787c39c9a
2023-11-16 08:58:08 -08:00
Aleksandrs Ecins
79b46734cb Fix lint in test_render_points
Summary: Fixes lint in test_render_points in the PyTorch3D library.

Differential Revision: D51289841

fbshipit-source-id: 1eae621eb8e87b0fe5979f35acd878944f574a6a
2023-11-14 11:07:28 -08:00
YangHai
55638f3bae Support reading uv and uv map for ply format if texture_uv exists in ply file (#1100)
Summary:
When the ply format looks as follows:
  ```
comment TextureFile ***.png
element vertex 892
property double x
property double y
property double z
property double nx
property double ny
property double nz
property double texture_u
property double texture_v
```
`MeshPlyFormat` class will read uv from the ply file and read the uv map as commented as TextureFile.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1100

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50885176

Pulled By: bottler

fbshipit-source-id: be75b1ec9a17a1ed87dbcf846a9072ea967aec37
2023-11-14 07:44:14 -08:00
Jeremy Reizenstein
f4f2209271 Fix for mask_points=False
Summary: Remove unused argument `mask_points` from `get_rgbd_point_cloud` and fix `get_implicitron_sequence_pointcloud`, which assumed it was used.

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50885848

fbshipit-source-id: c0b834764ad5ef560107bd8eab04952d000489b8
2023-11-14 07:42:18 -08:00
Jeremy Reizenstein
f613682551 marching_cubes type fix
Summary: fixes https://github.com/facebookresearch/pytorch3d/issues/1679

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50949933

fbshipit-source-id: 5c467de8bf84dd2a3d61748b3846678582d24ea3
2023-11-14 07:38:54 -08:00
Jeremy Reizenstein
2f11ddc5ee version 0.7.5
Summary: update

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50806966

fbshipit-source-id: 95fd341c9e5e4e07b689eb71b3a729baff3b8192
2023-10-31 09:27:49 -07:00
Jeremy Reizenstein
650cc09d22 update notebooks for 0.7.5
Summary:
```
sed -i 's/startswith((\"1.13.\", \"2.0.\"))/startswith\(\"2.1.\"\)/' *b
```

Reviewed By: shapovalov

Differential Revision: D50806967

fbshipit-source-id: df19462564edb1f840753efeae96b516c7a9f764
2023-10-31 09:27:49 -07:00
Jeremy Reizenstein
8c15afe71d fix warning from cross
Summary: Don't call tensor.cross() without dim, to avoid new warning.

Reviewed By: MichaelRamamonjisoa

Differential Revision: D49879590

fbshipit-source-id: e9ba83923b6dc3bcface6782b8b26729ab5b0a4c
2023-10-30 11:50:23 -07:00
Jeremy Reizenstein
6b437e21a6 CI fixes (#1676)
Summary:
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1676

Remove CUDA 10.2 build, remove sm35 from cuda12.

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50790929

fbshipit-source-id: 2b8cd34493b633a97b4066e0fd61aff077f7ce0c
2023-10-30 09:50:04 -07:00
Jeremy Reizenstein
03f17ca1ea missing cudaGetLastError
Summary: Investigating a reported problem.

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50791296

fbshipit-source-id: 8dc162b87d02debf05d16c2b4816fcd57234d7e0
2023-10-30 09:35:08 -07:00
Aniket Patil
a8c70161a1 Fixed typo in cameras.py (#1656)
Summary:
coodinates -> coordinates

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1656

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50325515

Pulled By: bottler

fbshipit-source-id: 406d2e286ead4fa5e9080092b4918a748495ee23
2023-10-17 06:07:02 -07:00
Jeremy Reizenstein
28f914bf3b pytorch 2.1, drop mac builds
Summary: Build updates for PyTorch 2.1

Reviewed By: MichaelRamamonjisoa

Differential Revision: D50345762

fbshipit-source-id: 89bf4edf1c21566aa86a3abca9b4df7c4d1d17a2
2023-10-17 06:04:06 -07:00
generatedunixname89002005307016
eaf0709d6a suppress errors in vision/fair/pytorch3d
Differential Revision: D49531589

fbshipit-source-id: 61c28ae33d2e5f75fd1695f35dc99931a3aaf7d3
2023-09-22 03:33:05 -07:00
Tristan Rice
b7f4ba097c VolumeSampler: expose padding_mode for inside out rendering (#1638)
Summary:
This exposes a setting on VolumeSampler so you can change the padding_mode. This is very useful when using cameras inside a volume that doesn't cover the entire world. By setting the value to `border` you can get much better behavior than `zeros` which causes edge effects for things like the sky. Border emulates infinitely tall buildings instead.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1638

Test Plan:
Tested with torchdrive

Example before:
![image](https://github.com/facebookresearch/pytorch3d/assets/909104/e99ffb7c-c4ba-40f8-b15c-ad5d1b53f0df)

Example after:
![image](https://github.com/facebookresearch/pytorch3d/assets/909104/f8d9821b-93d5-44b5-b9d4-c1670711ddce)

Reviewed By: MichaelRamamonjisoa

Differential Revision: D49384383

Pulled By: bottler

fbshipit-source-id: 202b526e07320a18944c39a148beec94c0f5d68c
2023-09-20 08:00:02 -07:00
Jeremy Reizenstein
6f2212da46 use less thrust, maybe help Windows
Summary: I think we include more thrust than needed, and maybe removing it will help things like  https://github.com/facebookresearch/pytorch3d/issues/1610 with DebugSyncStream errors on Windows.

Reviewed By: shapovalov

Differential Revision: D48949888

fbshipit-source-id: add889c0acf730a039dc9ffd6bbcc24ded20ef27
2023-09-05 04:40:24 -07:00
Richard Barnes
a3d99cab6b Del (object) from 200 inc vision/fair/mae_st/util/meters.py
Summary: Python3 makes the use of `(object)` in class inheritance unnecessary. Let's modernize our code by eliminating this.

Reviewed By: itamaro

Differential Revision: D48673863

fbshipit-source-id: 032d6028371f0350252e6b731c74f0f5933c83cd
2023-08-26 13:55:56 -07:00
Haritha Jayasinghe
d84f274a08 add None option for chamfer distance point reduction (#1605)
Summary:
The `chamfer_distance` function currently allows `"sum"` or `"mean"` reduction, but does not support returning unreduced (per-point) loss terms. Unreduced losses could be useful if the user wishes to inspect individual losses, or perform additional modifications to loss terms before reduction. One example would be implementing a robust kernel over the loss.

This PR adds a `None` option to the `point_reduction` parameter, similar to `batch_reduction`. In case of bi-directional chamfer loss, both the forward and backward distances are returned (a tuple of Tensors of shape `[D, N]` is returned). If normals are provided, similar logic applies to normals as well.

This PR addresses issue https://github.com/facebookresearch/pytorch3d/issues/622.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1605

Reviewed By: jcjohnson

Differential Revision: D48313857

Pulled By: bottler

fbshipit-source-id: 35c824827a143649b04166c4817449e1341b7fd9
2023-08-15 10:36:06 -07:00
generatedunixname89002005307016
099fc069fb suppress errors in vision/fair/pytorch3d
Differential Revision: D47643182

fbshipit-source-id: 598de1526e0c717f2f7038c3f4873ac119c65bba
2023-07-20 12:37:46 -07:00
Jeremy Reizenstein
57f6e79280 attempt to fix readthedocs
Summary:
Something's wrong with recommonmark/CommonMark/six, let's see if this fixes it.

https://readthedocs.org/projects/pytorch3d/builds/21292632/

```
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/envs/latest/lib/python3.11/site-packages/sphinx/config.py", line 368, in eval_config_file
    execfile_(filename, namespace)
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/envs/latest/lib/python3.11/site-packages/sphinx/util/pycompat.py", line 150, in execfile_
    exec_(code, _globals)
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/checkouts/latest/docs/conf.py", line 25, in <module>
    from recommonmark.parser import CommonMarkParser
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/envs/latest/lib/python3.11/site-packages/recommonmark/parser.py", line 6, in <module>
    from CommonMark import DocParser, HTMLRenderer
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/envs/latest/lib/python3.11/site-packages/CommonMark/__init__.py", line 3, in <module>
    from CommonMark.CommonMark import HTMLRenderer
  File "/home/docs/checkouts/readthedocs.org/user_builds/pytorch3d/envs/latest/lib/python3.11/site-packages/CommonMark/CommonMark.py", line 18, in <module>
    HTMLunescape = html.parser.HTMLParser().unescape
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HTMLParser' object has no attribute 'unescape'
```

Reviewed By: shapovalov

Differential Revision: D47471545

fbshipit-source-id: 48e121e20da535b3cc46b6bd2393d28869067b8b
2023-07-14 09:49:09 -07:00
Jeremy Reizenstein
2883a07bfe update wheel scripts
Summary: New versions of cuda etc. I haven't committed recent changes to this for a while

Reviewed By: shapovalov

Differential Revision: D47396136

fbshipit-source-id: d6c27f5056fa8f4a74a628fa1d831159000acf55
2023-07-14 09:09:46 -07:00
Jeremy Reizenstein
6462aa60ea switch to readthedocs.yaml
Summary: This is needed from september 2023. As a side effect, implicitron docs should build better because typing.get_args exists etc.

Reviewed By: shapovalov

Differential Revision: D47363855

fbshipit-source-id: a954c5b81b1e5a4435fca146a11aea0d2ca96f45
2023-07-13 06:56:19 -07:00
Roman Shapovalov
d851bc3173 Read depth maps from OpenXR files
Summary:
Blender uses OpenEXR to dump depth maps, so we have to support it.
OpenCV requires to explicitly accepth the vulnerabilities by setting the env var before exporting.
We can set it but I think it should be user’s responsibility.
OpenCV error reporting is adequate, so I don’t handle the error on our side.

Reviewed By: bottler

Differential Revision: D47403884

fbshipit-source-id: 2fcadd1df9d0efa0aea563bcfb2e3180b3c4d1d7
2023-07-13 04:50:03 -07:00
Roman Shapovalov
8164ac4081 Fix: tensor vs array type correctness
Summary:
For fg-masking depth, we assumed np.array but passed a Tensor; for defining the default depth_mask, vice versa.

Note that we change the intended behaviour for the latter, assuming that 0s are areas with empty depth. When loading depth masks, we replace NaNs with zeros, so it is sensible. It is not a BC change as that branch would crash if executed. Since there was no reports, I assume no one cared.

Reviewed By: bottler

Differential Revision: D47403588

fbshipit-source-id: 1094104176d7d767a5657b5bbc9f5a0cc9da0ede
2023-07-13 04:50:03 -07:00
Emilien Garreau
9446d91fae Avoid to keep in memory lengths and bins for ImplicitronRayBundle
Summary:
Convert ImplicitronRayBundle to a "classic" class instead of a dataclass. This change is introduced as a way to preserve the ImplicitronRayBundle interface while allowing two outcomes:
- init lengths arguments is now a Optional[torch.Tensor] instead of torch.Tensor
- lengths is now a property which returns a `torch.Tensor`. The lengths property will either recompute lengths from bins or return the stored _lengths. `_lenghts` is None if bins is set. It saves us a bit of memory.

Reviewed By: shapovalov

Differential Revision: D46686094

fbshipit-source-id: 3c75c0947216476ebff542b6f552d311024a679b
2023-07-06 02:41:15 -07:00
Emilien Garreau
3d011a9198 Adapt RayPointRefiner and RayMarcher to support bins.
Summary:
## Context

Bins are used in mipnerf to allow to manipulate easily intervals. For example, by doing the following, `bins[..., :-1]` you will obtain all the left coordinates of your intervals, while doing `bins[..., 1:]` is equals to the right coordinates of your intervals.

We introduce here the support of bins like in MipNerf implementation.

## RayPointRefiner

Small changes have been made to modify RayPointRefiner.
- If bins is None

```
mids = torch.lerp(ray_bundle.lengths[..., 1:], ray_bundle.lengths[…, :-1], 0.5)
z_samples = sample_pdf(
		mids, # [..., npt]
		weights[..., 1:-1], # [..., npt - 1]
               ….
            )
```

- If bins is not None
In the MipNerf implementation the sampling is done on all the bins. It allows us to use the full weights tensor without slashing it.

```
z_samples = sample_pdf(
		ray_bundle.bins, # [..., npt + 1]
		weights, # [..., npt]
               ...
            )
```

## RayMarcher

Add a ray_deltas optional argument. If None, keep the same deltas computation from ray_lengths.

Reviewed By: shapovalov

Differential Revision: D46389092

fbshipit-source-id: d4f1963310065bd31c1c7fac1adfe11cbeaba606
2023-07-06 02:41:15 -07:00
Emilien Garreau
5910d81b7b Add blurpool following MIPNerf paper.
Summary:
Add blurpool has defined in [MIP-NeRF](https://arxiv.org/abs/2103.13415).
It has been added has an option for RayPointRefiner.

Reviewed By: shapovalov

Differential Revision: D46356189

fbshipit-source-id: ad841bad86d2b591a68e1cb885d4f781cf26c111
2023-07-06 02:20:53 -07:00
Emilien Garreau
ccf860f1db Add integrated position encoding based on MIPNerf implementation.
Summary: Add a new implicit module Integral Position Encoding based on [MIP-NeRF](https://arxiv.org/abs/2103.13415).

Reviewed By: shapovalov

Differential Revision: D46352730

fbshipit-source-id: c6a56134c975d80052b3a11f5e92fd7d95cbff1e
2023-07-06 02:20:53 -07:00
Emilien Garreau
29b8ebd802 Add utils to approximate the conical frustums as multivariate gaussians.
Summary:
Introduce methods to approximate the radii of conical frustums along rays as described in [MipNerf](https://arxiv.org/abs/2103.13415):

- Two new attributes are added to ImplicitronRayBundle: bins and radii. Bins is of size n_pts_per_ray + 1. It allows us to manipulate easily and n_pts_per_ray intervals. For example we need the intervals coordinates in the radii computation for \(t_{\mu}, t_{\delta}\). Radii are used to store the radii of the conical frustums.

- Add 3 new methods to compute the radii:
   - approximate_conical_frustum_as_gaussians: It computes the mean along the ray direction, the variance of the
      conical frustum  with respect to t and variance of the conical frustum with respect to its radius. This
      implementation follows the stable computation defined in the paper.
   - compute_3d_diagonal_covariance_gaussian: Will leverage the two previously computed variances to find the
     diagonal covariance of the Gaussian.
   - conical_frustum_to_gaussian: Mix everything together to compute the means and the diagonal covariances along
     the ray of the Gaussians.

- In AbstractMaskRaySampler, introduces the attribute `cast_ray_bundle_as_cone`. If False it won't change the previous behaviour of the RaySampler. However if True, the samplers will sample `n_pts_per_ray +1` instead of `n_pts_per_ray`. This points are then used to set the bins attribute of ImplicitronRayBundle. The support of HeterogeneousRayBundle has not been added since the current code does not allow it. A safeguard has been added to avoid a silent bug in the future.

Reviewed By: shapovalov

Differential Revision: D45269190

fbshipit-source-id: bf22fad12d71d55392f054e3f680013aa0d59b78
2023-07-06 01:55:41 -07:00
Emilien Garreau
4e7715ce66 Remove unused pyre-ignore or pyre-fixme
Reviewed By: bottler

Differential Revision: D47223471

fbshipit-source-id: 8bdabf2a69dd7aec7202141122a9c69220ba7ef1
2023-07-05 02:58:47 -07:00
Jeremy Reizenstein
f68371d398 lints
Summary: simple

Reviewed By: shapovalov

Differential Revision: D46438865

fbshipit-source-id: 0f41cb3ddd7e7aca4513267d33299531f7e8d373
2023-06-16 06:48:04 -07:00
Jeremy Reizenstein
dc2c7e489f docs build remove mock after D45600232
Summary: We now use unittest.mock

Reviewed By: shapovalov

Differential Revision: D45868799

fbshipit-source-id: cd1042dc2c49c82c7b9e024f761c496049a31beb
2023-06-16 04:50:30 -07:00
Jeremy Reizenstein
42e7de418c fix test_build internal
Summary: Make test work in isolation, and when run internally make it not try the sqlalchemy files.

Reviewed By: shapovalov

Differential Revision: D46352513

fbshipit-source-id: 7417a25d7a5347d937631c9f56ae4e3242dd622e
2023-06-16 04:49:02 -07:00
Richard Higgins
88429853b9 1-line tutorial notebook plotting change to fix blank figure problem (#1549)
Summary:
Hi,

Not sure this is the best fix. But while running this notebook, I only ever saw a blank canvas when trying to visualize the dolphin. It might be that I have a broken dependency, like plotly. I also don't know what the visualization is "supposed" to look like.

But incase other people have this issue, this one line change solved the whole problem for me. Now I have a happy, rotatable dolphin.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1549

Reviewed By: shapovalov

Differential Revision: D46350930

Pulled By: bottler

fbshipit-source-id: e19aa71eb05a93e2955262a2c90d1f0d09576228
2023-06-16 04:35:15 -07:00
Jeremy Reizenstein
009a3d3b3c projects/nerf subsampling fix for newish pytorch #1441
Summary: Fix for https://github.com/facebookresearch/pytorch3d/issues/1441 where we were indexing with a tensor on the wrong device.

Reviewed By: shapovalov

Differential Revision: D46276449

fbshipit-source-id: 7750ed45ffecefa5d291fd1eadfe515310c2cf0d
2023-06-16 04:33:24 -07:00
Roman Shapovalov
cd5db076d5 Adding SQL dataset classes to ImplicitronDataSource imports
Summary: Making it easier for the clients to use these datasets.

Reviewed By: bottler

Differential Revision: D46727179

fbshipit-source-id: cf619aee4c4c0222a74b30ea590cf37f08f014cc
2023-06-14 10:51:47 -07:00
Roman Shapovalov
3d886c32d5 Fix: subset filter in DatasetBase implementation
Summary: In D42739669, I forgot to update the API of existing implementations of DatasetBase to take `subset_filter`. Looks like only one was missing.

Reviewed By: bottler

Differential Revision: D46724488

fbshipit-source-id: 13ab7a457f853278cf06955aad0cc2bab5fbcce6
2023-06-14 08:48:14 -07:00
Roman Shapovalov
5592d25f68 Fix: changed deprecated matplotlib parameter
Summary:
The parameter was renamed in MPL 3.5.0 in 2021, and the deprecated version is no longer supported.

https://matplotlib.org/stable/api/prev_api_changes/api_changes_3.5.0.html#the-first-parameter-of-axes-grid-and-axis-grid-has-been-renamed-to-visible

Reviewed By: bottler

Differential Revision: D46724242

fbshipit-source-id: 04e2ab6d63369d939ea4f0ce7d64693e0b95ee91
2023-06-14 08:48:14 -07:00
Roman Shapovalov
09a99f2e6d Support limiting num sequences per category.
Summary:
Adds stratified sampling of sequences within categories applied after category / sequence filters but before the num sequence limit.
It respects the insertion order into the sequence_annots table, i.e. takes top N sequences within each category.

Reviewed By: bottler

Differential Revision: D46724002

fbshipit-source-id: 597cb2a795c3f3bc07f838fc51b4e95a4f981ad3
2023-06-14 07:12:02 -07:00
Norman Mueller
5ffeb4d580 Single directional chamfer distance and non-absolute cosine similarity
Summary: Single directional chamfer distance and option to use non-absolute cosine similarity

Reviewed By: bottler

Differential Revision: D46593980

fbshipit-source-id: b2e591706a0cdde1c2d361614cecebb84a581433
2023-06-13 09:09:15 -07:00
generatedunixname89002005307016
573a42cd5f suppress errors in vision/fair/pytorch3d
Differential Revision: D46685078

fbshipit-source-id: daf2e75f24b68d2eab74cddca8ab9446e96951e7
2023-06-13 07:14:48 -07:00
Jeremy Reizenstein
928efdd640 fix camera plot for new matplotlib
Summary: fixes https://github.com/facebookresearch/pytorch3d/issues/1554 , needed for Matplotlib 3.6+

Reviewed By: patricklabatut

Differential Revision: D46438822

fbshipit-source-id: f3c06ad5d8e881a635edd14f96d498dca73c169f
2023-06-07 05:10:10 -07:00
Emilien Garreau
35badc0892 Fix inversion between fine and coarse implicit_functions
Summary: Fine implicit function was called before the coarse implicit function.

Reviewed By: shapovalov

Differential Revision: D46224224

fbshipit-source-id: 6b1cc00cc823d3ea7a5b42774c9ec3b73a69edb5
2023-05-26 08:33:54 -07:00
generatedunixname89002005307016
e0c3ca97ff upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D46119066

fbshipit-source-id: b766118b9dcc07075d328fba73f272419dc9fc38
2023-05-23 20:34:54 -07:00
Roman Shapovalov
d2119c285f Serialising dynamic arrays in SQL; read-only SQLite connection in SQL Dataset
Summary:
1. We may need to store arrays of unknown shape in the database. It implements and tests serialisation.

2. Previously, when an inexisting metadata file was passed to SqlIndexDataset, it would try to open it and create an empty file, then crash. We now open the file in a read-only mode, so the error message is more intuitive. Note that the implementation is SQLite specific.

Reviewed By: bottler

Differential Revision: D46047857

fbshipit-source-id: 3064ae4f8122b4fc24ad3d6ab696572ebe8d0c26
2023-05-22 02:24:49 -07:00
Jeremy Reizenstein
ff80183fdb resources fix
Summary: I don't know why RE tests sometimes fail here, but maybe it's a race condition. If that's right, this should fix it.

Reviewed By: shapovalov

Differential Revision: D46020054

fbshipit-source-id: 20b746b09ad9bd77c2601ac681047ccc6cc27ed9
2023-05-19 06:41:33 -07:00
Roman Shapovalov
b0462598ac Refactor: FrameDataBuilder is more extensible.
Summary:
This is mostly a refactoring diff to reduce friction in extending the frame data.

Slight functional changes: dataset getitem now accepts (seq_name, frame_number_as_singleton_tensor) as a non-advertised feature. Otherwise this code crashes:
```
item = dataset[0]
dataset[item.sequence_name, item.frame_number]
```

Reviewed By: bottler

Differential Revision: D45780175

fbshipit-source-id: 75b8e8d3dabed954a804310abdbd8ab44a8dea29
2023-05-17 10:38:34 -07:00
Virendra Kumar Pathak
d08fe6d45a Softly deprecate the get_str=False flag.
Summary: We don't want to use print directly in stats.print() method. Instead this method will return the output string to the caller.

Reviewed By: shapovalov

Differential Revision: D45356240

fbshipit-source-id: 2cabe3cdfb9206bf09aa7b3cdd2263148a5ba145
2023-05-14 01:24:31 -07:00
Jeremy Reizenstein
297020a4b1 version 0.7.4
Summary: version number

Reviewed By: shapovalov

Differential Revision: D45704549

fbshipit-source-id: d63867f305b07c30ed9ea104f1494d23710fdbb7
2023-05-10 04:42:58 -07:00
Jeremy Reizenstein
062e6c54ae builds for PyTorch 2.0.1; drop 1.9
Summary: Drop support for PyTorch 1.9.0 and 1.9.1.

Reviewed By: shapovalov

Differential Revision: D45704329

fbshipit-source-id: c0fe3ecf6a1eb9bcd4163785c0cb4bf4f5060f50
2023-05-10 02:38:47 -07:00
Roman Shapovalov
c80180c96e Fix: FrameDataBuilder working with PathManager
Summary: In refactoring, we lost path manager here, which broke manifold storage. Fixing this.

Reviewed By: bottler

Differential Revision: D45574940

fbshipit-source-id: 579349eaa654215a09e057be57b56b46769c986a
2023-05-09 04:56:39 -07:00
Jason Fried
23cd19fbc7 typing.NamedTuple.field_types removed in favor of __annotations__
Summary:
typing.NamedTuple was simplified in 3.10
These two fields were the same in 3.8,  so this should be a no-op

#buildmore

Reviewed By: bottler

Differential Revision: D45373526

fbshipit-source-id: 2b26156f5f65b7be335133e9e705730f7254260d
2023-05-08 13:53:16 -07:00
dhb
092400f1e7 allow saving vertex normal in save_obj (#1511)
Summary:
Although we can load per-vertex normals in `load_obj`, saving per-vertex normals is not supported in `save_obj`.

This patch fixes this by allowing passing per-vertex normal data in `save_obj`:
``` python
def save_obj(
    f: PathOrStr,
    verts,
    faces,
    decimal_places: Optional[int] = None,
    path_manager: Optional[PathManager] = None,
    *,
    verts_normals: Optional[torch.Tensor] = None,
    faces_normals: Optional[torch.Tensor] = None,
    verts_uvs: Optional[torch.Tensor] = None,
    faces_uvs: Optional[torch.Tensor] = None,
    texture_map: Optional[torch.Tensor] = None,
) -> None:
    """
    Save a mesh to an .obj file.

    Args:
        f: File (str or path) to which the mesh should be written.
        verts: FloatTensor of shape (V, 3) giving vertex coordinates.
        faces: LongTensor of shape (F, 3) giving faces.
        decimal_places: Number of decimal places for saving.
        path_manager: Optional PathManager for interpreting f if
            it is a str.
        verts_normals: FloatTensor of shape (V, 3) giving the normal per vertex.
        faces_normals: LongTensor of shape (F, 3) giving the index into verts_normals
            for each vertex in the face.
        verts_uvs: FloatTensor of shape (V, 2) giving the uv coordinate per vertex.
        faces_uvs: LongTensor of shape (F, 3) giving the index into verts_uvs for
            each vertex in the face.
        texture_map: FloatTensor of shape (H, W, 3) representing the texture map
            for the mesh which will be saved as an image. The values are expected
            to be in the range [0, 1],
    """
```

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1511

Reviewed By: shapovalov

Differential Revision: D45086045

Pulled By: bottler

fbshipit-source-id: 666efb0d2c302df6cf9f2f6601d83a07856bf32f
2023-05-07 06:32:02 -07:00
generatedunixname89002005287564
ec87284c4b Replace third-party mock with unittest.mock] vision/fair
Reviewed By: bottler

Differential Revision: D45600232

fbshipit-source-id: f41b95c6fca86d241666b54755a128cd33f6dd32
2023-05-05 09:36:30 -07:00
Xiao Xuan
f5a117c74b fix: correct typo in cameras.md (#1501)
Summary:
If my understanding is right, prp_screen[1] should be 32 rather than 48.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1501

Reviewed By: shapovalov

Differential Revision: D45044406

Pulled By: bottler

fbshipit-source-id: 7dd93312db4986f4701e642ba82d94333466b921
2023-05-05 08:13:39 -07:00
Jeremy Reizenstein
b921efae3e CUB usage fix for sample_farthest_points
Summary: Fix for https://github.com/facebookresearch/pytorch3d/issues/1529

Reviewed By: shapovalov

Differential Revision: D45569211

fbshipit-source-id: 8c485f26cd409cafac53d4d982a03cde81a1d853
2023-05-05 05:59:14 -07:00
Roman Shapovalov
c8d6cd427e Fix test_data_source in OSS.
Summary: Import generic path; avoiding incorrect path patching.

Reviewed By: bottler

Differential Revision: D45573976

fbshipit-source-id: e6ff4d759deb936e3b636defa1e0851fb0127b46
2023-05-05 02:05:50 -07:00
Jeremy Reizenstein
ef5f620263 nondeterminism warnings
Summary: do like xformers.

Reviewed By: shapovalov

Differential Revision: D44541873

fbshipit-source-id: 2c23160591cd9026fcd4972998d1bc90adba1356
2023-05-04 12:50:41 -07:00
Roman Shapovalov
3e3644e534 More tests for SQL Dataset
Summary:
I forgot to include these tests to D45086611 when transferring code from pixar_replay repo.

They test the new ORM types used in SQL dataset and are SQL Alchemy 2.0 specific.

An important test for extending types is a proof of concept for generality of SQL Dataset. The idea is to extend FrameAnnotation and FrameData in parallel.

Reviewed By: bottler

Differential Revision: D45529284

fbshipit-source-id: 2a634e518f580c312602107c85fc320db43abcf5
2023-05-04 03:32:27 -07:00
Ilia Vitsnudel
178a7774d4 Adding save mesh into glb file in TexturesVertex format
Summary:
Added a suit of functions and code additions to experimental_gltf_io.py file to enable saving Meshes in TexturesVertex format into .glb file.
Also added a test to tets_io_gltf.py to check the functionality with the test described in Test Plane.

Reviewed By: bottler

Differential Revision: D44969144

fbshipit-source-id: 9ce815a1584b510442fa36cc4dbc8d41cc3786d5
2023-05-01 00:41:47 -07:00
Emilien Garreau
823ab75d27 Simplify _xy_grid computation in raysampling
Summary: Remove the need of tuple and reversed in the raysampling xy_grid computation

Reviewed By: bottler

Differential Revision: D45269342

fbshipit-source-id: d0e4c0923b9a2cca674b35e8d64862043a0eab3b
2023-04-27 03:07:37 -07:00
Roman Shapovalov
32e1992924 SQL Index Dataset
Summary:
Moving SQL dataset to PyTorch3D. It has been extensively tested in pixar_replay.

It requires SQLAlchemy 2.0, which is not supported in fbcode. So I exclude the sources and tests that depend on it from buck TARGETS.

Reviewed By: bottler

Differential Revision: D45086611

fbshipit-source-id: 0285f03e5824c0478c70ad13731525bb5ec7deef
2023-04-25 09:56:15 -07:00
Roman Shapovalov
7aeedd17a4 When bounding boxes are cached in metadata, don’t crash on load_masks=False
Summary:
We currently support caching bounding boxes in MaskAnnotation. If present, they are not re-computed from the mask. However, the masks need to be loaded for the bbox to be set.

This diff fixes that. Even if load_masks / load_blobs are unset, the bounding box can be picked up from the metadata.

Reviewed By: bottler

Differential Revision: D45144918

fbshipit-source-id: 8a2e2c115e96070b6fcdc29cbe57e1cee606ddcd
2023-04-20 07:28:45 -07:00
Roman Shapovalov
0e3138eca8 Optional ground-truth depth maps in visualiser
Summary: The code does not crash if depth map/mask are not given.

Reviewed By: bottler

Differential Revision: D45082985

fbshipit-source-id: 3610d8beb4ac897fbbe52f56a6dd012a6365b89b
2023-04-18 07:00:17 -07:00
Richard Barnes
1af6bf4768 Replace hasattr with getattr in vision/fair/pytorch3d/pytorch3d/renderer/cameras.py
Summary:
The pattern
```
X.Y if hasattr(X, "Y") else Z
```
can be replaced with
```
getattr(X, "Y", Z)
```

The [getattr](https://www.w3schools.com/python/ref_func_getattr.asp) function gives more succinct code than the [hasattr](https://www.w3schools.com/python/ref_func_hasattr.asp) function. Please use it when appropriate.

**This diff is very low risk. Green tests indicate that you can safely Accept & Ship.**

Reviewed By: bottler

Differential Revision: D44886893

fbshipit-source-id: 86ba23e837217e1ebd64bf8e27d286257894839e
2023-04-14 04:24:54 -07:00
generatedunixname89002005307016
355d6332cb upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D44881859

fbshipit-source-id: 4ed410724a14d580f811c1288f51a71ce8fb0c9a
2023-04-11 17:15:12 -07:00
Jeremy Reizenstein
e245560abb version 0.7.3
Summary: update version number

Reviewed By: davidsonic

Differential Revision: D44343297

fbshipit-source-id: 763a25fbe0c880e8b7ad851b8e4b57787e449cab
2023-04-04 07:48:02 -07:00
Jeremy Reizenstein
33bf10f961 INSTALL updates for 0.7.3
Summary: PyTorch 2.0 now supported

Reviewed By: davidsonic

Differential Revision: D44343298

fbshipit-source-id: c81556dc872141e692a97845da0fb50fe82f62da
2023-04-04 07:48:02 -07:00
Jeremy Reizenstein
274b6df918 update notebooks for 0.7.3
Summary:
Allow pytorch2.0 download:
```
sed -i 's/startswith(\\"1.13.\\")/startswith\(\(\\"1.13.\\", \\"2.0.\\"\)\)/' *b
```

Remove lines which download and install CUB:
```
sed -i.bak '/1.10\.0/d' *b
rm *.bak
```

Reviewed By: davidsonic

Differential Revision: D44343299

fbshipit-source-id: e8399b5dd10068c717178ba9ffb0630bacca3253
2023-04-04 07:48:02 -07:00
Ildar Salakhiev
ebdbfde0ce Extract BlobLoader class from JsonIndexDataset and moving crop_by_bbox to FrameData
Summary:
extracted blob loader
added documentation for blob_loader
did some refactoring on fields
for detailed steps and discussions see:
https://github.com/facebookresearch/pytorch3d/pull/1463
https://github.com/fairinternal/pixar_replay/pull/160

Reviewed By: bottler

Differential Revision: D44061728

fbshipit-source-id: eefb21e9679003045d73729f96e6a93a1d4d2d51
2023-04-04 07:17:43 -07:00
Dejan Kovachev
c759fc560f Hard population of registry system with pre_expand
Summary: Provide an extension point pre_expand to let a configurable class A make sure another class B is registered before A is expanded. This reduces top level imports.

Reviewed By: bottler

Differential Revision: D44504122

fbshipit-source-id: c418bebbe6d33862d239be592d9751378eee3a62
2023-03-31 07:44:38 -07:00
Emilien Garreau
813e941de5 Add the OverfitModel
Summary:
Introduces the OverfitModel for NeRF-style training with overfitting to one scene.
It is a specific case of GenericModel. It has been disentangle to ease usage.

## General modification

1. Modularize a minimum GenericModel to introduce OverfitModel
2. Introduce OverfitModel and ensure through unit testing that it behaves like GenericModel.

## Modularization

The following methods have been extracted from GenericModel to allow modularity with ManyViewModel:
- get_objective is now a call to weighted_sum_losses
- log_loss_weights
- prepare_inputs

The generic methods have been moved to an utils.py file.

Simplify the code to introduce OverfitModel.

Private methods like chunk_generator are now public and can now be used by ManyViewModel.

Reviewed By: shapovalov

Differential Revision: D43771992

fbshipit-source-id: 6102aeb21c7fdd56aa2ff9cd1dd23fd9fbf26315
2023-03-24 07:27:39 -07:00
Jeremy Reizenstein
7d8b029aae increment_version for inplace ops
Summary: For safety checks, make inplace forward operations in cuda and c++ call increment_version.

Reviewed By: davidsonic

Differential Revision: D44302504

fbshipit-source-id: 6ff62251e352d6778cb54399e2e11459e16e77ba
2023-03-23 11:48:36 -07:00
Jeremy Reizenstein
9437768687 conda pytorch2.0.0 builds (#1480)
Summary:
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1480

Nightly builds with PyTorch 2.0.

Reviewed By: shapovalov

Differential Revision: D44135997

fbshipit-source-id: 12b363e2eadbda7a9b6ba9d8db376f41b96d551c
2023-03-21 04:41:37 -07:00
generatedunixname89002005307016
8c8004853a upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D44182699

fbshipit-source-id: bdc5f495eaaee8ce461b91271d476d7b3ec3f8a2
2023-03-17 18:33:54 -07:00
Jeremy Reizenstein
013ff4fd90 doc fix load_point_cloud => load_pointcloud
Summary:
spelling errors in io.md

see https://github.com/facebookresearch/pytorch3d/discussions/1450

Reviewed By: davidsonic

Differential Revision: D43269978

fbshipit-source-id: 4bbe1f00bdeda4c51b7620e7b9cc065840303530
2023-03-09 10:11:13 -08:00
Jeremy Reizenstein
a123815f40 join_pointclouds_as_scene
Summary: New function

Reviewed By: davidsonic

Differential Revision: D42776590

fbshipit-source-id: 2a6e73480bcf2d1749f86bcb22d1942e3e8d3167
2023-03-09 06:51:13 -08:00
Emilien Garreau
d388881f2c Replace relative imports in generic_model.py with absolute ones
Summary: - Replace all the relative imports for generic models to absolute import: (from . import y => from pytorch3.x import y)

Reviewed By: shapovalov

Differential Revision: D43620682

fbshipit-source-id: 937318b339b5020d17b511a891c7b000ff659328
2023-02-28 05:41:37 -08:00
generatedunixname89002005287564
33b49cebf0 fbcode//vision/fair/pytorch3d
Reviewed By: bottler

Differential Revision: D43432438

fbshipit-source-id: 58159b2febb67febb533511eb2d1f47d40dad032
2023-02-20 07:19:15 -08:00
generatedunixname89002005307016
8c2b0b01f8 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D43044534

fbshipit-source-id: dc841b6704ccd562f5a40e7b2834e26063a9f7ae
2023-02-06 09:05:41 -08:00
generatedunixname89002005307016
d8471b26f2 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D42947615

fbshipit-source-id: 47b078fdf68567220e15993ab643f85771b0d340
2023-02-01 20:28:20 -08:00
David Novotny
18c38ad600 Fix opencv camera convention docs
Summary: see title

Reviewed By: bottler

Differential Revision: D42920739

fbshipit-source-id: 87f3d052657880b2ef58a1219bb7d4f283ab0830
2023-02-01 05:05:23 -08:00
Jeremy Reizenstein
c8af1c45ca fix broken config for GenericModel
Summary: D42760349 (9540c29023) (make Module.__init__ automatic) didn't account properly for inheritance.

Reviewed By: shapovalov

Differential Revision: D42834466

fbshipit-source-id: 53ee4c788985c1678ad905c06ccf12b2b41361e9
2023-01-29 08:19:57 -08:00
Jeremy Reizenstein
7dfa6918ee transform test fix
Summary: Indexing with a big matrix now fails with a ValueError, possibly because of pytorch improvements. Remove the testcase for it.

Reviewed By: davidsonic

Differential Revision: D42609741

fbshipit-source-id: 0a5a6632ed199cb942bfc4cc4ed347b72e491125
2023-01-28 17:00:41 -08:00
Roman Shapovalov
a7256e4034 Consider the first frame as target ignoring subset labels in evaluator
Summary:
Aligning the logic with the official CO3Dv2 evaluation: 92283c4368/co3d/dataset/utils.py (L7)

This will make the evaluator work with the datasets that do not define known/unseen subsets.

Reviewed By: bottler

Differential Revision: D42803136

fbshipit-source-id: cfac389eab010c32d2e33b40fc7f6ed845c327ef
2023-01-27 08:05:42 -08:00
Jeremy Reizenstein
9540c29023 Make Module.__init__ automatic
Summary: If a configurable class inherits torch.nn.Module and is instantiated, automatically call `torch.nn.Module.__init__` on it before doing anything else.

Reviewed By: shapovalov

Differential Revision: D42760349

fbshipit-source-id: 409894911a4252b7987e1fd218ee9ecefbec8e62
2023-01-27 07:07:46 -08:00
Jeremy Reizenstein
97f8f9bf47 test fix
Reviewed By: shapovalov

Differential Revision: D42780711

fbshipit-source-id: 075fcae5097147b782f7ffc935f5430b824f58fd
2023-01-27 03:56:53 -08:00
Nikhila Ravi
7e750a3786 Update README with links to blog posts (#43)
Summary: Pull Request resolved: https://github.com/fairinternal/pytorch3d/pull/43

Reviewed By: bottler

Differential Revision: D42791756

Pulled By: nikhilaravi

fbshipit-source-id: 498399c1ce30bb095579c4d66b6314a6aa846df3
2023-01-27 01:57:54 -08:00
generatedunixname89002005307016
0b11a5dc6d suppress errors in vision/fair/pytorch3d
Differential Revision: D42775736

fbshipit-source-id: 8425305cd99d50ebc155502d56c0deeee1d078ab
2023-01-26 07:04:18 -08:00
Roman Shapovalov
3239594f78 Fix: Correct concatenation of datasets in train conditioning
Summary: ChainDataset is iterable, and it toes not go along with a custom batch sampler.

Reviewed By: bottler

Differential Revision: D42742315

fbshipit-source-id: 40a715c8d24abe72cb2777634247d7467f628564
2023-01-26 03:00:46 -08:00
Roman Shapovalov
11959e0b24 Subsets in dataset iterators
Summary: For the new API, filtering iterators over sequences by subsets is quite helpful. The change is backwards compatible.

Reviewed By: bottler

Differential Revision: D42739669

fbshipit-source-id: d150a404aeaf42fd04a81304c63a4cba203f897d
2023-01-26 03:00:46 -08:00
Roman Shapovalov
54eb76d48c Loosening the checks in eval script for CO3Dv2 style eval
Summary:
V2 dataset does not have the concept of known/unseen frames. Test-time conditining is done with train-set frames, which violates the previous check.

Also fixing a corner case in VideoWriter.

Reviewed By: bottler

Differential Revision: D42706976

fbshipit-source-id: d43be3dd3060d18cb9f46d5dcf6252d9f084110f
2023-01-26 03:00:46 -08:00
David Novotny
9dc28f5dd5 Fixes for RayBundle plotting
Summary:
Fixes some issues with RayBundle plotting:
- allows plotting raybundles on gpu
- view -> reshape since we do not require contiguous raybundle tensors as input

Reviewed By: bottler, shapovalov

Differential Revision: D42665923

fbshipit-source-id: e9c6c7810428365dca4cb5ec80ef15ff28644163
2023-01-25 01:56:36 -08:00
Jeremy Reizenstein
a12612a48f doc rgbd point cloud
Summary: docstring and shape fix

Reviewed By: shapovalov

Differential Revision: D42609661

fbshipit-source-id: fd50234872ad61b5452821eeb89d51344f70c957
2023-01-24 15:26:52 -08:00
Roman Shapovalov
d561f1913e Cleaning up camera difficulty
Summary: We don’t see much value in reporting metrics by camera difficulty while supporting that in new datasets is quite painful, hence deprecating training cameras in the data API and ignoring in evaluation.

Reviewed By: bottler

Differential Revision: D42678879

fbshipit-source-id: aad511f6cb2ca82745f31c19594e1d80594b61d7
2023-01-23 10:38:56 -08:00
David Novotny
1de2d0c820 render_flyaround allow forwarding args from visualize_reconstruction
Summary: Allows to send kwargs to render_flyaround from visualize_reconstruction

Reviewed By: bottler, shapovalov

Differential Revision: D41157683

fbshipit-source-id: 74d8d7de4e991a31b14e72d76de5efdb8ab4b2c5
2023-01-23 06:52:48 -08:00
myla
b95535c8b7 Fixing bug in rasterizer.py caused by duplicate line (#1421)
Summary:
The file [rasterizer.py](de3a474d2b/pytorch3d/renderer/mesh/rasterizer.py (L201)) contains a duplicate line before the check if the projection_transform exists. This causes an exception in the case that a projection transform matrix is already provided. The corresponding lines should be (and are already) in the else case of the if-statement.

Removing these lines fixes the bug and produces the desired behavior.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1421

Reviewed By: shapovalov

Differential Revision: D42450999

Pulled By: bottler

fbshipit-source-id: f7464e87ec9ff8768455656324b0b008132c8a54
2023-01-19 05:49:56 -08:00
Jeremy Reizenstein
dcced4fa29 test fixes
Reviewed By: shapovalov

Differential Revision: D42545069

fbshipit-source-id: e25fb4049dcebd715df43bab3ce813ecb5f85abe
2023-01-17 06:11:56 -08:00
Jeremy Reizenstein
84851c8312 camera iteration #1408
Summary: Use IndexError so that a camera object is an iterable

Reviewed By: shapovalov

Differential Revision: D42312021

fbshipit-source-id: 67c417d5f1398e8b30a6944468eda057b4ceb444
2023-01-16 08:52:52 -08:00
Jeremy Reizenstein
b7e3b7b16c rendered_mesh_dataset improvements
Summary: Allow choosing the device and the distance

Reviewed By: shapovalov

Differential Revision: D42451605

fbshipit-source-id: 214f02d09da94eb127b3cc308d5bae800dc7b9e2
2023-01-16 07:46:41 -08:00
Jeremy Reizenstein
acc60db4f4 INSTALL.md clarification
Summary: Add fvcore and iopath explicitly. As mentioned in #1416.

Reviewed By: shapovalov

Differential Revision: D42451365

fbshipit-source-id: 0d8d2ead3f15dea6abef221fd5df2b4774abc83f
2023-01-16 07:41:46 -08:00
Moritz Kampelmuehler
aa5b31d857 Add nvidia channel for cudatoolkit (#1402)
Summary:
nvidia channel is required for installing cudatoolkit

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1402

Reviewed By: davidsonic

Differential Revision: D42208583

Pulled By: bottler

fbshipit-source-id: 83d0e63efcf7772b778ca909fd9b14d28829c5b6
2023-01-15 08:57:18 -08:00
yurimalheiros
1b4b67fd7f Minor fixes to the Fit Mesh tutorial (#1423)
Summary:
- Fix the numbers in the headers. Currently, there are no header number 2, the tutorial jump from 1 to 3.
- Clean some unnecessary code.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1423

Reviewed By: shapovalov

Differential Revision: D42478609

Pulled By: bottler

fbshipit-source-id: c49fc10b7d38c3573c92fea737101e6c06bbea38
2023-01-15 08:56:12 -08:00
Jeremy Reizenstein
9fb452db5c builds for pytorch 1.13.1
Reviewed By: davidsonic

Differential Revision: D42315355

fbshipit-source-id: f5ced5270e5a7b4a162ee930fc51dee0469d51fc
2023-01-12 14:27:43 -08:00
Jeremy Reizenstein
3cf3998ea5 assume Python 3.8+
Summary: Remove workarounds for Python 3.7

Reviewed By: davidsonic

Differential Revision: D42451534

fbshipit-source-id: 461dd311f3bccf7bef120ffe0b97fbbd173d95be
2023-01-12 14:25:40 -08:00
Jeremy Reizenstein
d71105f5e5 lints
Summary: lint fixes

Reviewed By: davidsonic

Differential Revision: D42451530

fbshipit-source-id: 120bdd58fc074a713895df15df4e9efa9ea0a420
2023-01-12 14:23:39 -08:00
Jeremy Reizenstein
3388d3f0aa Windows fix for marching cubes #1398
Summary: See https://github.com/facebookresearch/pytorch3d/issues/1398 .

Reviewed By: davidsonic

Differential Revision: D42139493

fbshipit-source-id: 972fc33b9c3017554ce704f2f10190eba406b7c8
2022-12-20 04:07:04 -08:00
Jeremy Reizenstein
3145dd4d16 version 0.7.2
Summary: version number

Reviewed By: davidsonic

Differential Revision: D42072729

fbshipit-source-id: 50adaac4daca7786479d33e218d15e941a725bb6
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
6c053a6cea Update notebooks for 0.7.2
Summary: Expect pytorch 1.13

Reviewed By: davidsonic

Differential Revision: D42072731

fbshipit-source-id: 13ba4e7de18060dc4e5c0e10f850f17a88750fc9
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
3bbe26124a README.md and INSTALL.md updates
Summary: misc updates

Reviewed By: davidsonic

Differential Revision: D42072730

fbshipit-source-id: fc885d14346083bd6493f18e9d965b35a8d4bdfd
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
c773830b88 fix and pythonify conda build (#1394)
Summary:
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1394

The bash logic for building conda packages became fiddly to edit. We need to switch cuda-toolkit to pytorch-cuda when PyTorch>=1.12 which was going to be a pain, so here I rewrite the code in python and do it.

Reviewed By: shapovalov

Differential Revision: D42036406

fbshipit-source-id: 8bb80c2f7545477182b23fc97c8514dcafcee176
2022-12-15 03:22:07 -08:00
Jeremy Reizenstein
b7a316232a fix saved glb length
Summary: Make GLB files report their own length correctly. They were off by 28.

Reviewed By: davidsonic

Differential Revision: D41838340

fbshipit-source-id: 9cd66e8337c142298d5ae1d7c27e51fd812d5c7b
2022-12-13 05:34:45 -08:00
generatedunixname89002005307016
de3a474d2b suppress errors in vision/fair/pytorch3d
Differential Revision: D41897914

fbshipit-source-id: 675f4ad6938bc12d295bbb63a69e3ff98b319a9a
2022-12-09 18:50:58 -08:00
Jeremy Reizenstein
a4a29b013b remove python 3.7 builds
Summary: Python 3.7 not needed any more

Reviewed By: shapovalov

Differential Revision: D41841033

fbshipit-source-id: c0cfd048c70e6b9e47224ab8cddcd6b5f4fc5597
2022-12-09 07:31:39 -08:00
Jeremy Reizenstein
e7851f7c79 Mac builds: python 3.10, pytorch 1.13
Summary: All mac builds now pytorch 1.13

Reviewed By: shapovalov

Differential Revision: D41841035

fbshipit-source-id: b932eb2fefed77ae22f9757f9bd628ce12b11fad
2022-12-09 07:31:39 -08:00
Jeremy Reizenstein
20a774e266 builds for PyTorch 1.13.0
Summary: Add builds for current pytorch

Reviewed By: shapovalov

Differential Revision: D41841034

fbshipit-source-id: 4a58515bd5c83b26f14763a3cec9279e905391d2
2022-12-09 07:31:39 -08:00
Jeremy Reizenstein
91b4c04c64 small readme update
Summary: followup D41534315 (5add065f8a)

Reviewed By: shapovalov

Differential Revision: D41842250

fbshipit-source-id: 54413e30880717f083fdc7acbce2eb3e646ffb94
2022-12-08 09:46:09 -08:00
Jiali Duan
cc2840eb44 Write meshes to GLB
Summary: Write the amalgamated mesh from the Mesh module to glb. In this version, the json header and the binary data specified by the buffer are merged into glb. The image texture attributes are added.

Reviewed By: bottler

Differential Revision: D41489778

fbshipit-source-id: 3af0e9a8f9e9098e73737a254177802e0fb6bd3c
2022-12-05 01:25:43 -08:00
David Novotny
dba48fb410 Add tutorial links to main README.md
Summary: <See title>

Reviewed By: bottler

Differential Revision: D41534604

fbshipit-source-id: 20111db87083b2cce7374cc2bd223ae220d7b010
2022-11-30 07:02:01 -08:00
David Novotny
5add065f8a Readme updates
Summary:
Running:
- clearly points users to experiment.py/visualize_reconstruction.py
Reproducing:
- Adds NeRF training on Blender
- Adds CO3Dv2 configs

Reviewed By: bottler

Differential Revision: D41534315

fbshipit-source-id: e85f5f1eafed8c35c9e91d748a04f238509cf8ec
2022-11-30 07:02:01 -08:00
Jeremy Reizenstein
a2c6af9250 more code blocks for readthedocs
Summary: More rst syntax fixes

Reviewed By: davidsonic

Differential Revision: D40977328

fbshipit-source-id: a3a3accbf2ba7cd9c84a0a82d0265010764a9d61
2022-11-29 03:13:40 -08:00
David Novotny
94f321fa3d render_flyaround bugfix
Summary: Fixes a bug which would crash render_flyaround anytime  visualize_preds_keys is adjusted

Reviewed By: shapovalov

Differential Revision: D41124462

fbshipit-source-id: 127045a91a055909f8bd56c8af81afac02c00f60
2022-11-28 04:36:41 -08:00
David Novotny
35f8cb9430 Downgrade "Assigning param_group " msg to DEBUG
Summary: <See title>

Reviewed By: bottler

Differential Revision: D41534524

fbshipit-source-id: 9c39198b9b8d5fc95f857b03ad39bfe0bd720cbb
2022-11-28 02:58:15 -08:00
David Novotny
c3a6ab02da Bug-fix visualize reconstruction
Summary:
Addresses the following issue:
https://github.com/facebookresearch/pytorch3d/issues/1345#issuecomment-1272881244

I.e., when installed from conda, `pytorch3d_implicitron_visualizer` crashes since it invokes `main()` while `main` requires a single positional arg `argv`.

Reviewed By: shapovalov

Differential Revision: D41533497

fbshipit-source-id: e53a923eb8b2f0f9c0e92e9c0866d9cb310c4799
2022-11-25 10:30:01 -08:00
Jeremy Reizenstein
60ab1cdb72 make x_enabled compulsory
Summary: Optional[some_configurable] won't autogenerate the enabled flag

Reviewed By: shapovalov

Differential Revision: D41522104

fbshipit-source-id: 555ff6b343faf6f18aad2f92fbb7c341f5e991c6
2022-11-24 09:38:02 -08:00
Jiali Duan
1706eb8216 Simplify MC C++ hashing logic
Summary: To be consistent with CUDA hashing, the diff replaces boost hasher with a simplified hasher for storing unique global edge_ids.

Reviewed By: kjchalup

Differential Revision: D41140382

fbshipit-source-id: 2ce598e5edcf6369fe13bd15d1f5e014b252027b
2022-11-15 19:42:04 -08:00
Jiali Duan
8b8291830e Marching Cubes cuda extension
Summary:
Torch CUDA extension for Marching Cubes
- MC involving 3 steps:
  - 1st forward pass to collect vertices and occupied state for each voxel
  - Compute compactVoxelArray to skip non-empty voxels
  - 2nd pass to genereate interpolated vertex positions and faces by marching through the grid
- In contrast to existing MC:
   - Bind each interpolated vertex with a global edge_id to address floating-point precision
   - Added deduplication process to remove redundant vertices and faces

Benchmarks (ms):

| N / V(^3)      | python          | C++             |   CUDA   | Speedup |
| 2 / 20          |    12176873  |       24338     |     4363   | 2790x/5x|
| 1 / 100          |     -             |    3070511     |   27126   |    113x    |
| 2 / 100          |     -             |    5968934     |   53129   |    112x    |
| 1 / 256          |     -             |  61278092     | 430900   |    142x    |
| 2 / 256          |     -             |125687930     | 856941   |    146x   |

Reviewed By: kjchalup

Differential Revision: D39644248

fbshipit-source-id: d679c0c79d67b98b235d12296f383d760a00042a
2022-11-15 19:42:04 -08:00
Jeremy Reizenstein
9a0b0c2e74 renderer and vis readthedocs #1363
Summary: Autogenerate docs for the renderer too. This will be helpful but make a slightly ugly TOC

Reviewed By: kjchalup

Differential Revision: D40977315

fbshipit-source-id: 10831de3ced68080cb5671c5dc31d4da8500f761
2022-11-15 14:10:22 -08:00
Daniel L. Lu
d0fbe2cb63 fix typo pucuda.gl --> pycuda.gl (#1379)
Summary:
Every time I try to run code, I get this warning:

```
  warnings.warn("Can't import pucuda.gl, not importing MeshRasterizerOpenGL.")
```

Of course, `pucuda` is a typo of `pycuda`.

This PR fixes the typo

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1379

Reviewed By: kjchalup

Differential Revision: D41295562

Pulled By: bottler

fbshipit-source-id: 2bfa2a2dbe20a5347861d36fbff5094994c1253d
2022-11-15 12:02:44 -08:00
Roman Shapovalov
719c33a7f9 Fix: visualisation with Enums fields in Configurables
Summary:
Enum fields cause the following to crash since they are loaded as strings:
```
config = OmegaConf.load(autodumped_cfg_file)
Experiment(**config)
```

It would be good to come up with the general solution but for now just fixing the visualisation script.

Reviewed By: bottler

Differential Revision: D41140426

fbshipit-source-id: 71c1c6b1fffe3b5ab1ca0114cfa3f0d81160278f
2022-11-08 15:58:41 -08:00
Roman Shapovalov
f3c1e0837c MC rasterize supports heterogeneous bundle; refactoring of bundle-to-padded
Summary:
Rasterize MC was not adapted to heterogeneous bundles.

There are some caveats though:
1) on CO3D, we get up to 18 points per image, which is too few for a reasonable visualisation (see below);
2) rasterising for a batch of 100 is slow.

I also moved the unpacking code close to the bundle to be able to reuse it.

{F789678778}

Reviewed By: bottler, davnov134

Differential Revision: D41008600

fbshipit-source-id: 9f10f1f9f9a174cf8c534b9b9859587d69832b71
2022-11-07 13:43:31 -08:00
Jeremy Reizenstein
7be49bf46f allow dots in param_groups
Summary:
Allow a module's param_group member to specify overrides to the param groups of its members or their members.
Also logging for param group assignments.

This allows defining `params.basis_matrix` in the param_groups of a voxel_grid.

Reviewed By: shapovalov

Differential Revision: D41080667

fbshipit-source-id: 49f3b0e5b36e496f78701db0699cbb8a7e20c51e
2022-11-07 06:41:40 -08:00
Jeremy Reizenstein
a1f2ded58a voxel_grid_implicit_function scaffold fixes
Summary: Fix indexing of directions after filtering of points by scaffold.

Reviewed By: shapovalov

Differential Revision: D40853482

fbshipit-source-id: 9cfdb981e97cb82edcd27632c5848537ed2c6837
2022-11-03 05:46:31 -07:00
David Novotny
e4a3298149 CO3Dv2 multi-category extension
Summary:
Allows loading of multiple categories.
Multiple categories are provided in a comma-separated list of category names.

Reviewed By: bottler, shapovalov

Differential Revision: D40803297

fbshipit-source-id: 863938be3aa6ffefe9e563aede4a2e9e66aeeaa8
2022-11-02 13:55:25 -07:00
Jeremy Reizenstein
c54e048666 more readthedocs
Summary: Quote formats, spelling

Reviewed By: shapovalov

Differential Revision: D40913734

fbshipit-source-id: d6dea65d5204b3c463c656a07ef9b447b7be6a0a
2022-11-02 05:19:15 -07:00
David Novotny
f7ac7b604a readthedocs fixes
Summary: Fixes readthedocs. Sphinx build looks good.

Reviewed By: bottler

Differential Revision: D40893196

fbshipit-source-id: bf00384b921d4ef54e64745ed39172358c2f9bb3
2022-11-01 05:46:13 -07:00
Jeremy Reizenstein
cd113efd98 Add implicitron to readthedocs
Summary: Try to document implicitron. Most of this is autogenerated.

Reviewed By: shapovalov

Differential Revision: D40623742

fbshipit-source-id: 453508277903b7d987b1703656ba1ee09bc2c570
2022-10-31 14:44:41 -07:00
Jeremy Reizenstein
322c8f2f50 make lpips optional
Summary: So that lpips isn't needed in readthedocs

Reviewed By: shapovalov

Differential Revision: D40859351

fbshipit-source-id: 58933bd3b71e78e658fbce56c3663b11ee2331f6
2022-10-31 14:44:41 -07:00
David Novotny
eff0aad15a Bugfix - normalize emitted ray directions after substraction
Summary: The bug lead to non-coinciding origins of the rays emitted from perspective cameras when unit_directions=True

Reviewed By: bottler

Differential Revision: D40865610

fbshipit-source-id: 398598e9e919b53e6bea179f0400e735bbb5b625
2022-10-31 14:00:49 -07:00
David Novotny
bea84a6fcd voxel_grid_if -> remove union type from the settings.
Summary: see title

Reviewed By: shapovalov

Differential Revision: D40803670

fbshipit-source-id: 211189167837af577d6502a698e2f3fb3aec3e30
2022-10-31 11:37:43 -07:00
Roman Shapovalov
f711c4bfe9 Fix parameters not wrapped with nn.Parameter, antialiasing compatibility
Summary: Some things fail if a parameter is not wraped; in particular, it prevented other tensors moving to GPU.

Reviewed By: bottler

Differential Revision: D40819932

fbshipit-source-id: a23b38ceacd7f0dc131cb0355fef1178e3e2f7fd
2022-10-31 01:43:00 -07:00
Jeremy Reizenstein
88620b6847 attempt to fix doc build #1363
Summary: installing from git: is failing

Reviewed By: shapovalov

Differential Revision: D40635668

fbshipit-source-id: 604ba5425e14caeabe4e178bf7f851f2163419bd
2022-10-27 07:26:36 -07:00
generatedunixname89002005307016
db7c80bf76 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D40695068

fbshipit-source-id: 9944a872d93a9dac348b252a0f8bf9c7e6f929f3
2022-10-25 22:42:06 -07:00
427 changed files with 15769 additions and 3957 deletions

View File

@@ -64,7 +64,7 @@ jobs:
CUDA_VERSION: "11.3"
resource_class: gpu.nvidia.small.multi
machine:
image: ubuntu-2004:202101-01
image: linux-cuda-11:default
steps:
- checkout
- <<: *setupcuda
@@ -116,8 +116,8 @@ jobs:
# so we aren't running the tests.
- run:
name: build
no_output_timeout: 20m
command: MAX_JOBS=15 TEST_FLAG=--no-test packaging/build_conda.sh
no_output_timeout: 40m
command: MAX_JOBS=15 TEST_FLAG=--no-test python3 packaging/build_conda.py
- store_artifacts:
path: /opt/conda/conda-bld/linux-64
- persist_to_workspace:
@@ -128,7 +128,7 @@ jobs:
binary_linux_conda_cuda:
<<: *binary_common
machine:
image: ubuntu-1604-cuda-10.2:202012-01
image: linux-cuda-11:default
resource_class: gpu.nvidia.small.multi
steps:
- checkout
@@ -145,7 +145,7 @@ jobs:
docker pull $TESTRUN_DOCKER_IMAGE
- run:
name: Build and run tests
no_output_timeout: 20m
no_output_timeout: 40m
command: |
set -e
@@ -154,25 +154,7 @@ jobs:
export JUST_TESTRUN=1
VARS_TO_PASS="-e PYTHON_VERSION -e BUILD_VERSION -e PYTORCH_VERSION -e CU_VERSION -e JUST_TESTRUN"
docker run --gpus all --ipc=host -v $(pwd):/remote -w /remote ${VARS_TO_PASS} ${TESTRUN_DOCKER_IMAGE} ./packaging/build_conda.sh
binary_macos_wheel:
<<: *binary_common
macos:
xcode: "13.4.1"
steps:
- checkout
- run:
# Cannot easily deduplicate this as source'ing activate
# will set environment variables which we need to propagate
# to build_wheel.sh
command: |
curl -o conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
sh conda.sh -b
source $HOME/miniconda3/bin/activate
packaging/build_wheel.sh
- store_artifacts:
path: dist
docker run --gpus all --ipc=host -v $(pwd):/remote -w /remote ${VARS_TO_PASS} ${TESTRUN_DOCKER_IMAGE} python3 ./packaging/build_conda.py
workflows:
version: 2
@@ -182,23 +164,8 @@ workflows:
# context: DOCKERHUB_TOKEN
{{workflows()}}
- binary_linux_conda_cuda:
name: testrun_conda_cuda_py37_cu102_pyt190
name: testrun_conda_cuda_py310_cu117_pyt201
context: DOCKERHUB_TOKEN
python_version: "3.7"
pytorch_version: '1.9.0'
cu_version: "cu102"
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py37_cpu
python_version: '3.7'
pytorch_version: '1.12.0'
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py38_cpu
python_version: '3.8'
pytorch_version: '1.12.0'
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py39_cpu
python_version: '3.9'
pytorch_version: '1.12.0'
python_version: "3.10"
pytorch_version: '2.0.1'
cu_version: "cu117"

View File

@@ -64,7 +64,7 @@ jobs:
CUDA_VERSION: "11.3"
resource_class: gpu.nvidia.small.multi
machine:
image: ubuntu-2004:202101-01
image: linux-cuda-11:default
steps:
- checkout
- <<: *setupcuda
@@ -116,8 +116,8 @@ jobs:
# so we aren't running the tests.
- run:
name: build
no_output_timeout: 20m
command: MAX_JOBS=15 TEST_FLAG=--no-test packaging/build_conda.sh
no_output_timeout: 40m
command: MAX_JOBS=15 TEST_FLAG=--no-test python3 packaging/build_conda.py
- store_artifacts:
path: /opt/conda/conda-bld/linux-64
- persist_to_workspace:
@@ -128,7 +128,7 @@ jobs:
binary_linux_conda_cuda:
<<: *binary_common
machine:
image: ubuntu-1604-cuda-10.2:202012-01
image: linux-cuda-11:default
resource_class: gpu.nvidia.small.multi
steps:
- checkout
@@ -145,7 +145,7 @@ jobs:
docker pull $TESTRUN_DOCKER_IMAGE
- run:
name: Build and run tests
no_output_timeout: 20m
no_output_timeout: 40m
command: |
set -e
@@ -154,25 +154,7 @@ jobs:
export JUST_TESTRUN=1
VARS_TO_PASS="-e PYTHON_VERSION -e BUILD_VERSION -e PYTORCH_VERSION -e CU_VERSION -e JUST_TESTRUN"
docker run --gpus all --ipc=host -v $(pwd):/remote -w /remote ${VARS_TO_PASS} ${TESTRUN_DOCKER_IMAGE} ./packaging/build_conda.sh
binary_macos_wheel:
<<: *binary_common
macos:
xcode: "13.4.1"
steps:
- checkout
- run:
# Cannot easily deduplicate this as source'ing activate
# will set environment variables which we need to propagate
# to build_wheel.sh
command: |
curl -o conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
sh conda.sh -b
source $HOME/miniconda3/bin/activate
packaging/build_wheel.sh
- store_artifacts:
path: dist
docker run --gpus all --ipc=host -v $(pwd):/remote -w /remote ${VARS_TO_PASS} ${TESTRUN_DOCKER_IMAGE} python3 ./packaging/build_conda.py
workflows:
version: 2
@@ -181,530 +163,526 @@ workflows:
# - main:
# context: DOCKERHUB_TOKEN
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt190
python_version: '3.7'
pytorch_version: 1.9.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt190
python_version: '3.7'
pytorch_version: 1.9.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt191
python_version: '3.7'
pytorch_version: 1.9.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt191
python_version: '3.7'
pytorch_version: 1.9.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1100
python_version: '3.7'
pytorch_version: 1.10.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt1100
python_version: '3.7'
pytorch_version: 1.10.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1100
python_version: '3.7'
pytorch_version: 1.10.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1101
python_version: '3.7'
pytorch_version: 1.10.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt1101
python_version: '3.7'
pytorch_version: 1.10.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1101
python_version: '3.7'
pytorch_version: 1.10.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1102
python_version: '3.7'
pytorch_version: 1.10.2
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt1102
python_version: '3.7'
pytorch_version: 1.10.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1102
python_version: '3.7'
pytorch_version: 1.10.2
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1110
python_version: '3.7'
pytorch_version: 1.11.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py37_cu111_pyt1110
python_version: '3.7'
pytorch_version: 1.11.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1110
python_version: '3.7'
pytorch_version: 1.11.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda115
context: DOCKERHUB_TOKEN
cu_version: cu115
name: linux_conda_py37_cu115_pyt1110
python_version: '3.7'
pytorch_version: 1.11.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1120
python_version: '3.7'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1120
python_version: '3.7'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py37_cu116_pyt1120
python_version: '3.7'
pytorch_version: 1.12.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py37_cu102_pyt1121
python_version: '3.7'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py37_cu113_pyt1121
python_version: '3.7'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py37_cu116_pyt1121
python_version: '3.7'
pytorch_version: 1.12.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt190
cu_version: cu118
name: linux_conda_py38_cu118_pyt210
python_version: '3.8'
pytorch_version: 1.9.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt190
cu_version: cu121
name: linux_conda_py38_cu121_pyt210
python_version: '3.8'
pytorch_version: 1.9.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt191
cu_version: cu118
name: linux_conda_py38_cu118_pyt211
python_version: '3.8'
pytorch_version: 1.9.1
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt191
cu_version: cu121
name: linux_conda_py38_cu121_pyt211
python_version: '3.8'
pytorch_version: 1.9.1
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1100
cu_version: cu118
name: linux_conda_py38_cu118_pyt212
python_version: '3.8'
pytorch_version: 1.10.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt1100
cu_version: cu121
name: linux_conda_py38_cu121_pyt212
python_version: '3.8'
pytorch_version: 1.10.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1100
cu_version: cu118
name: linux_conda_py38_cu118_pyt220
python_version: '3.8'
pytorch_version: 1.10.0
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1101
cu_version: cu121
name: linux_conda_py38_cu121_pyt220
python_version: '3.8'
pytorch_version: 1.10.1
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt1101
cu_version: cu118
name: linux_conda_py38_cu118_pyt222
python_version: '3.8'
pytorch_version: 1.10.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1101
cu_version: cu121
name: linux_conda_py38_cu121_pyt222
python_version: '3.8'
pytorch_version: 1.10.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1102
cu_version: cu118
name: linux_conda_py38_cu118_pyt231
python_version: '3.8'
pytorch_version: 1.10.2
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt1102
cu_version: cu121
name: linux_conda_py38_cu121_pyt231
python_version: '3.8'
pytorch_version: 1.10.2
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1102
cu_version: cu118
name: linux_conda_py38_cu118_pyt240
python_version: '3.8'
pytorch_version: 1.10.2
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1110
cu_version: cu121
name: linux_conda_py38_cu121_pyt240
python_version: '3.8'
pytorch_version: 1.11.0
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py38_cu111_pyt1110
cu_version: cu118
name: linux_conda_py38_cu118_pyt241
python_version: '3.8'
pytorch_version: 1.11.0
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1110
cu_version: cu121
name: linux_conda_py38_cu121_pyt241
python_version: '3.8'
pytorch_version: 1.11.0
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda115
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu115
name: linux_conda_py38_cu115_pyt1110
python_version: '3.8'
pytorch_version: 1.11.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1120
python_version: '3.8'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1120
python_version: '3.8'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py38_cu116_pyt1120
python_version: '3.8'
pytorch_version: 1.12.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py38_cu102_pyt1121
python_version: '3.8'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py38_cu113_pyt1121
python_version: '3.8'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py38_cu116_pyt1121
python_version: '3.8'
pytorch_version: 1.12.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt190
cu_version: cu118
name: linux_conda_py39_cu118_pyt210
python_version: '3.9'
pytorch_version: 1.9.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt190
cu_version: cu121
name: linux_conda_py39_cu121_pyt210
python_version: '3.9'
pytorch_version: 1.9.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt191
cu_version: cu118
name: linux_conda_py39_cu118_pyt211
python_version: '3.9'
pytorch_version: 1.9.1
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt191
cu_version: cu121
name: linux_conda_py39_cu121_pyt211
python_version: '3.9'
pytorch_version: 1.9.1
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1100
cu_version: cu118
name: linux_conda_py39_cu118_pyt212
python_version: '3.9'
pytorch_version: 1.10.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt1100
cu_version: cu121
name: linux_conda_py39_cu121_pyt212
python_version: '3.9'
pytorch_version: 1.10.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1100
cu_version: cu118
name: linux_conda_py39_cu118_pyt220
python_version: '3.9'
pytorch_version: 1.10.0
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1101
cu_version: cu121
name: linux_conda_py39_cu121_pyt220
python_version: '3.9'
pytorch_version: 1.10.1
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt1101
cu_version: cu118
name: linux_conda_py39_cu118_pyt222
python_version: '3.9'
pytorch_version: 1.10.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1101
cu_version: cu121
name: linux_conda_py39_cu121_pyt222
python_version: '3.9'
pytorch_version: 1.10.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1102
cu_version: cu118
name: linux_conda_py39_cu118_pyt231
python_version: '3.9'
pytorch_version: 1.10.2
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt1102
cu_version: cu121
name: linux_conda_py39_cu121_pyt231
python_version: '3.9'
pytorch_version: 1.10.2
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1102
cu_version: cu118
name: linux_conda_py39_cu118_pyt240
python_version: '3.9'
pytorch_version: 1.10.2
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1110
cu_version: cu121
name: linux_conda_py39_cu121_pyt240
python_version: '3.9'
pytorch_version: 1.11.0
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py39_cu111_pyt1110
cu_version: cu118
name: linux_conda_py39_cu118_pyt241
python_version: '3.9'
pytorch_version: 1.11.0
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1110
cu_version: cu121
name: linux_conda_py39_cu121_pyt241
python_version: '3.9'
pytorch_version: 1.11.0
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda115
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu115
name: linux_conda_py39_cu115_pyt1110
python_version: '3.9'
pytorch_version: 1.11.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1120
python_version: '3.9'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1120
python_version: '3.9'
pytorch_version: 1.12.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py39_cu116_pyt1120
python_version: '3.9'
pytorch_version: 1.12.0
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py39_cu102_pyt1121
python_version: '3.9'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py39_cu113_pyt1121
python_version: '3.9'
pytorch_version: 1.12.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py39_cu116_pyt1121
python_version: '3.9'
pytorch_version: 1.12.1
- binary_linux_conda:
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py310_cu102_pyt1110
cu_version: cu118
name: linux_conda_py310_cu118_pyt210
python_version: '3.10'
pytorch_version: 1.11.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu111
name: linux_conda_py310_cu111_pyt1110
cu_version: cu121
name: linux_conda_py310_cu121_pyt210
python_version: '3.10'
pytorch_version: 1.11.0
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py310_cu113_pyt1110
cu_version: cu118
name: linux_conda_py310_cu118_pyt211
python_version: '3.10'
pytorch_version: 1.11.0
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda115
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu115
name: linux_conda_py310_cu115_pyt1110
cu_version: cu121
name: linux_conda_py310_cu121_pyt211
python_version: '3.10'
pytorch_version: 1.11.0
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py310_cu102_pyt1120
cu_version: cu118
name: linux_conda_py310_cu118_pyt212
python_version: '3.10'
pytorch_version: 1.12.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py310_cu113_pyt1120
cu_version: cu121
name: linux_conda_py310_cu121_pyt212
python_version: '3.10'
pytorch_version: 1.12.0
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py310_cu116_pyt1120
cu_version: cu118
name: linux_conda_py310_cu118_pyt220
python_version: '3.10'
pytorch_version: 1.12.0
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu102
name: linux_conda_py310_cu102_pyt1121
cu_version: cu121
name: linux_conda_py310_cu121_pyt220
python_version: '3.10'
pytorch_version: 1.12.1
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda113
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu113
name: linux_conda_py310_cu113_pyt1121
cu_version: cu118
name: linux_conda_py310_cu118_pyt222
python_version: '3.10'
pytorch_version: 1.12.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda116
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu116
name: linux_conda_py310_cu116_pyt1121
cu_version: cu121
name: linux_conda_py310_cu121_pyt222
python_version: '3.10'
pytorch_version: 1.12.1
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py310_cu118_pyt231
python_version: '3.10'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py310_cu121_pyt231
python_version: '3.10'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py310_cu118_pyt240
python_version: '3.10'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py310_cu121_pyt240
python_version: '3.10'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py310_cu118_pyt241
python_version: '3.10'
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py310_cu121_pyt241
python_version: '3.10'
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt210
python_version: '3.11'
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt210
python_version: '3.11'
pytorch_version: 2.1.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt211
python_version: '3.11'
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt211
python_version: '3.11'
pytorch_version: 2.1.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt212
python_version: '3.11'
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt212
python_version: '3.11'
pytorch_version: 2.1.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt220
python_version: '3.11'
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt220
python_version: '3.11'
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt222
python_version: '3.11'
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt222
python_version: '3.11'
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt231
python_version: '3.11'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt231
python_version: '3.11'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt240
python_version: '3.11'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt240
python_version: '3.11'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py311_cu118_pyt241
python_version: '3.11'
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py311_cu121_pyt241
python_version: '3.11'
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py312_cu118_pyt220
python_version: '3.12'
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py312_cu121_pyt220
python_version: '3.12'
pytorch_version: 2.2.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py312_cu118_pyt222
python_version: '3.12'
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py312_cu121_pyt222
python_version: '3.12'
pytorch_version: 2.2.2
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py312_cu118_pyt231
python_version: '3.12'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py312_cu121_pyt231
python_version: '3.12'
pytorch_version: 2.3.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py312_cu118_pyt240
python_version: '3.12'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py312_cu121_pyt240
python_version: '3.12'
pytorch_version: 2.4.0
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda118
context: DOCKERHUB_TOKEN
cu_version: cu118
name: linux_conda_py312_cu118_pyt241
python_version: '3.12'
pytorch_version: 2.4.1
- binary_linux_conda:
conda_docker_image: pytorch/conda-builder:cuda121
context: DOCKERHUB_TOKEN
cu_version: cu121
name: linux_conda_py312_cu121_pyt241
python_version: '3.12'
pytorch_version: 2.4.1
- binary_linux_conda_cuda:
name: testrun_conda_cuda_py37_cu102_pyt190
name: testrun_conda_cuda_py310_cu117_pyt201
context: DOCKERHUB_TOKEN
python_version: "3.7"
pytorch_version: '1.9.0'
cu_version: "cu102"
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py37_cpu
python_version: '3.7'
pytorch_version: '1.12.0'
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py38_cpu
python_version: '3.8'
pytorch_version: '1.12.0'
- binary_macos_wheel:
cu_version: cpu
name: macos_wheel_py39_cpu
python_version: '3.9'
pytorch_version: '1.12.0'
python_version: "3.10"
pytorch_version: '2.0.1'
cu_version: "cu117"

View File

@@ -18,52 +18,51 @@ from packaging import version
# The CUDA versions which have pytorch conda packages available for linux for each
# version of pytorch.
# Pytorch 1.4 also supports cuda 10.0 but we no longer build for cuda 10.0 at all.
CONDA_CUDA_VERSIONS = {
"1.9.0": ["cu102", "cu111"],
"1.9.1": ["cu102", "cu111"],
"1.10.0": ["cu102", "cu111", "cu113"],
"1.10.1": ["cu102", "cu111", "cu113"],
"1.10.2": ["cu102", "cu111", "cu113"],
"1.11.0": ["cu102", "cu111", "cu113", "cu115"],
"1.12.0": ["cu102", "cu113", "cu116"],
"1.12.1": ["cu102", "cu113", "cu116"],
"2.1.0": ["cu118", "cu121"],
"2.1.1": ["cu118", "cu121"],
"2.1.2": ["cu118", "cu121"],
"2.2.0": ["cu118", "cu121"],
"2.2.2": ["cu118", "cu121"],
"2.3.1": ["cu118", "cu121"],
"2.4.0": ["cu118", "cu121"],
"2.4.1": ["cu118", "cu121"],
}
def conda_docker_image_for_cuda(cuda_version):
if cuda_version in ("cu101", "cu102", "cu111"):
return None
if cuda_version == "cu113":
return "pytorch/conda-builder:cuda113"
if cuda_version == "cu115":
return "pytorch/conda-builder:cuda115"
if cuda_version == "cu116":
return "pytorch/conda-builder:cuda116"
raise ValueError("Unknown cuda version")
if len(cuda_version) != 5:
raise ValueError("Unknown cuda version")
return "pytorch/conda-builder:cuda" + cuda_version[2:]
def pytorch_versions_for_python(python_version):
if python_version in ["3.7", "3.8"]:
if python_version in ["3.8", "3.9"]:
return list(CONDA_CUDA_VERSIONS)
if python_version == "3.9":
return [
i
for i in CONDA_CUDA_VERSIONS
if version.Version(i) > version.Version("1.7.0")
]
if python_version == "3.10":
return [
i
for i in CONDA_CUDA_VERSIONS
if version.Version(i) >= version.Version("1.11.0")
]
if python_version == "3.11":
return [
i
for i in CONDA_CUDA_VERSIONS
if version.Version(i) >= version.Version("2.1.0")
]
if python_version == "3.12":
return [
i
for i in CONDA_CUDA_VERSIONS
if version.Version(i) >= version.Version("2.2.0")
]
def workflows(prefix="", filter_branch=None, upload=False, indentation=6):
w = []
for btype in ["conda"]:
for python_version in ["3.7", "3.8", "3.9", "3.10"]:
for python_version in ["3.8", "3.9", "3.10", "3.11", "3.12"]:
for pytorch_version in pytorch_versions_for_python(python_version):
for cu_version in CONDA_CUDA_VERSIONS[pytorch_version]:
w += workflow_pair(

View File

@@ -1,5 +1,8 @@
[flake8]
ignore = E203, E266, E501, W503, E221
# B028 No explicit stacklevel argument found.
# B907 'foo' is manually surrounded by quotes, consider using the `!r` conversion flag.
# B905 `zip()` without an explicit `strict=` parameter.
ignore = E203, E266, E501, W503, E221, B028, B905, B907
max-line-length = 88
max-complexity = 18
select = B,C,E,F,W,T4,B9

BIN
.github/implicitron_config.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

View File

@@ -8,24 +8,23 @@
The core library is written in PyTorch. Several components have underlying implementation in CUDA for improved performance. A subset of these components have CPU implementations in C++/PyTorch. It is advised to use PyTorch3D with GPU support in order to use all the features.
- Linux or macOS or Windows
- Python 3.6, 3.7, 3.8 or 3.9
- PyTorch 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0 or 1.12.0.
- Python
- PyTorch 2.1.0, 2.1.1, 2.1.2, 2.2.0, 2.2.1, 2.2.2, 2.3.0, 2.3.1, 2.4.0 or 2.4.1.
- torchvision that matches the PyTorch installation. You can install them together as explained at pytorch.org to make sure of this.
- gcc & g++ ≥ 4.9
- [fvcore](https://github.com/facebookresearch/fvcore)
- [ioPath](https://github.com/facebookresearch/iopath)
- If CUDA is to be used, use a version which is supported by the corresponding pytorch version and at least version 9.2.
- If CUDA is to be used and you are building from source, the CUB library must be available. We recommend version 1.10.0.
- If CUDA older than 11.7 is to be used and you are building from source, the CUB library must be available. We recommend version 1.10.0.
The runtime dependencies can be installed by running:
```
conda create -n pytorch3d python=3.9
conda activate pytorch3d
conda install -c pytorch pytorch=1.9.1 torchvision cudatoolkit=10.2
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia
conda install -c iopath iopath
```
For the CUB build time dependency, if you are using conda, you can continue with
For the CUB build time dependency, which you only need if you have CUDA older than 11.7, if you are using conda, you can continue with
```
conda install -c bottler nvidiacub
```
@@ -49,6 +48,7 @@ For developing on top of PyTorch3D or contributing, you will need to run the lin
- tdqm
- jupyter
- imageio
- fvcore
- plotly
- opencv-python
@@ -59,6 +59,7 @@ conda install jupyter
pip install scikit-image matplotlib imageio plotly opencv-python
# Tests/Linting
conda install -c fvcore -c conda-forge fvcore
pip install black usort flake8 flake8-bugbear flake8-comprehensions
```
@@ -77,15 +78,10 @@ Or, to install a nightly (non-official, alpha) build:
# Anaconda Cloud
conda install pytorch3d -c pytorch3d-nightly
```
### 2. Install from PyPI, on Mac only.
This works with pytorch 1.12.0 only. The build is CPU only.
```
pip install pytorch3d
```
### 3. Install wheels for Linux
### 2. Install wheels for Linux
We have prebuilt wheels with CUDA for Linux for PyTorch 1.11.0, for each of the supported CUDA versions,
for Python 3.7, 3.8 and 3.9. This is for ease of use on Google Colab.
for Python 3.8 and 3.9. This is for ease of use on Google Colab.
These are installed in a special way.
For example, to install for Python 3.8, PyTorch 1.11.0 and CUDA 11.3
```
@@ -102,6 +98,7 @@ version_str="".join([
torch.version.cuda.replace(".",""),
f"_pyt{pyt_version_str}"
])
!pip install iopath
!pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html
```

View File

@@ -12,7 +12,7 @@ Key features include:
- Data structure for storing and manipulating triangle meshes
- Efficient operations on triangle meshes (projective transformations, graph convolution, sampling, loss functions)
- A differentiable mesh renderer
- Implicitron, see [its README](projects/implicitron_trainer), a framework for new-view synthesis via implicit representations.
- Implicitron, see [its README](projects/implicitron_trainer), a framework for new-view synthesis via implicit representations. ([blog post](https://ai.facebook.com/blog/implicitron-a-new-modular-extensible-framework-for-neural-implicit-representations-in-pytorch3d/))
PyTorch3D is designed to integrate smoothly with deep learning methods for predicting and manipulating 3D data.
For this reason, all operators in PyTorch3D:
@@ -24,6 +24,8 @@ For this reason, all operators in PyTorch3D:
Within FAIR, PyTorch3D has been used to power research projects such as [Mesh R-CNN](https://arxiv.org/abs/1906.02739).
See our [blog post](https://ai.facebook.com/blog/-introducing-pytorch3d-an-open-source-library-for-3d-deep-learning/) to see more demos and learn about PyTorch3D.
## Installation
For detailed instructions refer to [INSTALL.md](INSTALL.md).
@@ -56,6 +58,11 @@ Get started with PyTorch3D by trying one of the tutorial notebooks.
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [Fit Textured Volume](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/fit_textured_volume.ipynb)| [Fit A Simple Neural Radiance Field](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/fit_simple_neural_radiance_field.ipynb)|
| <img src="https://raw.githubusercontent.com/facebookresearch/pytorch3d/main/.github/fit_textured_volume.gif" width="310"/> | <img src="https://raw.githubusercontent.com/facebookresearch/pytorch3d/main/.github/implicitron_config.gif" width="310" height="310"/>
|:------------------------------------------------------------:|:--------------------------------------------------:|
| [Fit Textured Volume in Implicitron](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/implicitron_volumes.ipynb)| [Implicitron Config System](https://github.com/facebookresearch/pytorch3d/blob/main/docs/tutorials/implicitron_config_system.ipynb)|
@@ -95,6 +102,7 @@ In alphabetical order:
* Amitav Baruah
* Steve Branson
* Krzysztof Chalupka
* Jiali Duan
* Luya Gao
* Georgia Gkioxari
* Taylor Gordon
@@ -138,6 +146,16 @@ If you are using the pulsar backend for sphere-rendering (the `PulsarPointRender
Please see below for a timeline of the codebase updates in reverse chronological order. We are sharing updates on the releases as well as research projects which are built with PyTorch3D. The changelogs for the releases are available under [`Releases`](https://github.com/facebookresearch/pytorch3d/releases), and the builds can be installed using `conda` as per the instructions in [INSTALL.md](INSTALL.md).
**[Oct 31st 2023]:** PyTorch3D [v0.7.5](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.5) released.
**[May 10th 2023]:** PyTorch3D [v0.7.4](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.4) released.
**[Apr 5th 2023]:** PyTorch3D [v0.7.3](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.3) released.
**[Dec 19th 2022]:** PyTorch3D [v0.7.2](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.2) released.
**[Oct 23rd 2022]:** PyTorch3D [v0.7.1](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.1) released.
**[Aug 10th 2022]:** PyTorch3D [v0.7.0](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.7.0) released with Implicitron and MeshRasterizerOpenGL.
**[Apr 28th 2022]:** PyTorch3D [v0.6.2](https://github.com/facebookresearch/pytorch3d/releases/tag/v0.6.2) released

View File

@@ -23,7 +23,7 @@ conda init bash
source ~/.bashrc
conda create -y -n myenv python=3.8 matplotlib ipython ipywidgets nbconvert
conda activate myenv
conda install -y -c fvcore -c iopath -c conda-forge fvcore iopath
conda install -y -c iopath iopath
conda install -y -c pytorch pytorch=1.6.0 cudatoolkit=10.1 torchvision
conda install -y -c pytorch3d-nightly pytorch3d
pip install plotly scikit-image

27
docs/.readthedocs.yaml Normal file
View File

@@ -0,0 +1,27 @@
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# We recommend specifying your dependencies to enable reproducible builds:
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt

View File

@@ -3,7 +3,7 @@
### Install dependencies
```
pip install -U recommonmark mock sphinx sphinx_rtd_theme sphinx_markdown_tables
pip install -U recommonmark sphinx sphinx_rtd_theme sphinx_markdown_tables
```
### Add symlink to the root README.md

View File

@@ -20,7 +20,8 @@
import os
import sys
import mock
import unittest.mock as mock
from recommonmark.parser import CommonMarkParser
from recommonmark.states import DummyStateMachine
from sphinx.builders.html import StandaloneHTMLBuilder

162
docs/generate_stubs.py Normal file
View File

@@ -0,0 +1,162 @@
#!/usr/bin/env python3
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
"""
This script makes the stubs for implicitron in docs/modules.
"""
from pathlib import Path
ROOT_DIR = Path(__file__).resolve().parent.parent
def paths_to_modules(paths):
"""
Given an iterable of paths, return equivalent list of modules.
"""
return [
str(i.relative_to(ROOT_DIR))[:-3].replace("/", ".")
for i in paths
if "__pycache__" not in str(i)
]
def create_one_file(title, description, sources, dest_file):
with open(dest_file, "w") as f:
print(title, file=f)
print("=" * len(title), file=f)
print(file=f)
print(description, file=f)
for source in sources:
if source.find("._") != -1:
# ignore internal modules including __init__.py
continue
print(f"\n.. automodule:: {source}", file=f)
print(" :members:", file=f)
print(" :undoc-members:", file=f)
print(" :show-inheritance:", file=f)
def iterate_directory(directory_path, dest):
"""
Create a file for each module in the given path
"""
toc = []
if not dest.exists():
dest.mkdir()
for file in sorted(directory_path.glob("*.py")):
if file.stem.startswith("_"):
continue
module = paths_to_modules([file])
create_one_file(module[0], file.stem, module, dest / f"{file.stem}.rst")
toc.append(file.stem)
for subdir in directory_path.iterdir():
if not subdir.is_dir():
continue
if subdir.name == "fb":
continue
if subdir.name.startswith("_"):
continue
iterate_directory(subdir, dest / (subdir.name))
toc.append(f"{subdir.name}/index")
paths_to_modules_ = paths_to_modules([directory_path.with_suffix(".XX")])
if len(paths_to_modules_) == 0:
return
title = paths_to_modules_[0]
with open(dest / "index.rst", "w") as f:
print(title, file=f)
print("=" * len(title), file=f)
print("\n.. toctree::\n", file=f)
for item in toc:
print(f" {item}", file=f)
def make_directory_index(title: str, directory_path: Path):
index_file = directory_path / "index.rst"
directory_rsts = sorted(directory_path.glob("*.rst"))
subdirs = sorted([f for f in directory_path.iterdir() if f.is_dir()])
with open(index_file, "w") as f:
print(title, file=f)
print("=" * len(title), file=f)
print("\n.. toctree::\n", file=f)
for subdir in subdirs:
print(f" {subdir.stem}/index.rst", file=f)
for rst in directory_rsts:
if rst.stem == "index":
continue
print(f" {rst.stem}", file=f)
def do_implicitron():
DEST_DIR = Path(__file__).resolve().parent / "modules/implicitron"
iterate_directory(ROOT_DIR / "pytorch3d/implicitron/models", DEST_DIR / "models")
unwanted_tools = ["configurable", "depth_cleanup", "utils"]
tools_sources = sorted(ROOT_DIR.glob("pytorch3d/implicitron/tools/*.py"))
tools_modules = [
str(i.relative_to(ROOT_DIR))[:-3].replace("/", ".")
for i in tools_sources
if i.stem not in unwanted_tools
]
create_one_file(
"pytorch3d.implicitron.tools",
"Tools for implicitron",
tools_modules,
DEST_DIR / "tools.rst",
)
dataset_files = sorted(ROOT_DIR.glob("pytorch3d/implicitron/dataset/*.py"))
basic_dataset = [
"dataset_base",
"dataset_map_provider",
"data_loader_map_provider",
"data_source",
"scene_batch_sampler",
]
basic_dataset_modules = [
f"pytorch3d.implicitron.dataset.{i}" for i in basic_dataset
]
create_one_file(
"pytorch3d.implicitron.dataset in general",
"Basics of data for implicitron",
basic_dataset_modules,
DEST_DIR / "data_basics.rst",
)
specific_dataset_files = [
i for i in dataset_files if i.stem.find("_dataset_map_provider") != -1
]
create_one_file(
"pytorch3d.implicitron.dataset specific datasets",
"specific datasets",
paths_to_modules(specific_dataset_files),
DEST_DIR / "datasets.rst",
)
evaluation_files = sorted(ROOT_DIR.glob("pytorch3d/implicitron/evaluation/*.py"))
create_one_file(
"pytorch3d.implicitron.evaluation",
"evaluation",
paths_to_modules(evaluation_files),
DEST_DIR / "evaluation.rst",
)
make_directory_index("pytorch3d.implicitron", DEST_DIR)
def iterate_toplevel_module(name: str) -> None:
dest_dir = Path(__file__).resolve().parent / "modules" / name
iterate_directory(ROOT_DIR / "pytorch3d" / name, dest_dir)
do_implicitron()
iterate_toplevel_module("renderer")
iterate_toplevel_module("vis")

View File

@@ -0,0 +1,29 @@
pytorch3d.implicitron.dataset in general
========================================
Basics of data for implicitron
.. automodule:: pytorch3d.implicitron.dataset.dataset_base
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.dataset_map_provider
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.data_loader_map_provider
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.data_source
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.scene_batch_sampler
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,29 @@
pytorch3d.implicitron.dataset specific datasets
===============================================
specific datasets
.. automodule:: pytorch3d.implicitron.dataset.blender_dataset_map_provider
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.json_index_dataset_map_provider
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.json_index_dataset_map_provider_v2
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.llff_dataset_map_provider
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.dataset.rendered_mesh_dataset_map_provider
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,14 @@
pytorch3d.implicitron.evaluation
================================
evaluation
.. automodule:: pytorch3d.implicitron.evaluation.evaluate_new_view_synthesis
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.evaluation.evaluator
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,10 @@
pytorch3d.implicitron
=====================
.. toctree::
models/index.rst
data_basics
datasets
evaluation
tools

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.base_model
=======================================
base_model
.. automodule:: pytorch3d.implicitron.models.base_model
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.feature_extractor.feature_extractor
================================================================
feature_extractor
.. automodule:: pytorch3d.implicitron.models.feature_extractor.feature_extractor
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,7 @@
pytorch3d.implicitron.models.feature_extractor
==============================================
.. toctree::
feature_extractor
resnet_feature_extractor

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.feature_extractor.resnet_feature_extractor
=======================================================================
resnet_feature_extractor
.. automodule:: pytorch3d.implicitron.models.feature_extractor.resnet_feature_extractor
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.generic_model
==========================================
generic_model
.. automodule:: pytorch3d.implicitron.models.generic_model
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.global_encoder.autodecoder
=======================================================
autodecoder
.. automodule:: pytorch3d.implicitron.models.global_encoder.autodecoder
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.global_encoder.global_encoder
==========================================================
global_encoder
.. automodule:: pytorch3d.implicitron.models.global_encoder.global_encoder
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,7 @@
pytorch3d.implicitron.models.global_encoder
===========================================
.. toctree::
autodecoder
global_encoder

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.base
===================================================
base
.. automodule:: pytorch3d.implicitron.models.implicit_function.base
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.decoding_functions
=================================================================
decoding_functions
.. automodule:: pytorch3d.implicitron.models.implicit_function.decoding_functions
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.idr_feature_field
================================================================
idr_feature_field
.. automodule:: pytorch3d.implicitron.models.implicit_function.idr_feature_field
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,13 @@
pytorch3d.implicitron.models.implicit_function
==============================================
.. toctree::
base
decoding_functions
idr_feature_field
neural_radiance_field
scene_representation_networks
utils
voxel_grid
voxel_grid_implicit_function

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.neural_radiance_field
====================================================================
neural_radiance_field
.. automodule:: pytorch3d.implicitron.models.implicit_function.neural_radiance_field
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.scene_representation_networks
============================================================================
scene_representation_networks
.. automodule:: pytorch3d.implicitron.models.implicit_function.scene_representation_networks
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.utils
====================================================
utils
.. automodule:: pytorch3d.implicitron.models.implicit_function.utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.voxel_grid
=========================================================
voxel_grid
.. automodule:: pytorch3d.implicitron.models.implicit_function.voxel_grid
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.implicit_function.voxel_grid_implicit_function
===========================================================================
voxel_grid_implicit_function
.. automodule:: pytorch3d.implicitron.models.implicit_function.voxel_grid_implicit_function
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,15 @@
pytorch3d.implicitron.models
============================
.. toctree::
base_model
generic_model
metrics
model_dbir
feature_extractor/index
global_encoder/index
implicit_function/index
renderer/index
view_pooler/index
visualization/index

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.metrics
====================================
metrics
.. automodule:: pytorch3d.implicitron.models.metrics
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.model_dbir
=======================================
model_dbir
.. automodule:: pytorch3d.implicitron.models.model_dbir
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.base
==========================================
base
.. automodule:: pytorch3d.implicitron.models.renderer.base
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,14 @@
pytorch3d.implicitron.models.renderer
=====================================
.. toctree::
base
lstm_renderer
multipass_ea
ray_point_refiner
ray_sampler
ray_tracing
raymarcher
rgb_net
sdf_renderer

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.lstm_renderer
===================================================
lstm_renderer
.. automodule:: pytorch3d.implicitron.models.renderer.lstm_renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.multipass_ea
==================================================
multipass_ea
.. automodule:: pytorch3d.implicitron.models.renderer.multipass_ea
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.ray_point_refiner
=======================================================
ray_point_refiner
.. automodule:: pytorch3d.implicitron.models.renderer.ray_point_refiner
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.ray_sampler
=================================================
ray_sampler
.. automodule:: pytorch3d.implicitron.models.renderer.ray_sampler
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.ray_tracing
=================================================
ray_tracing
.. automodule:: pytorch3d.implicitron.models.renderer.ray_tracing
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.raymarcher
================================================
raymarcher
.. automodule:: pytorch3d.implicitron.models.renderer.raymarcher
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.rgb_net
=============================================
rgb_net
.. automodule:: pytorch3d.implicitron.models.renderer.rgb_net
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.renderer.sdf_renderer
==================================================
sdf_renderer
.. automodule:: pytorch3d.implicitron.models.renderer.sdf_renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.view_pooler.feature_aggregator
===========================================================
feature_aggregator
.. automodule:: pytorch3d.implicitron.models.view_pooler.feature_aggregator
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,8 @@
pytorch3d.implicitron.models.view_pooler
========================================
.. toctree::
feature_aggregator
view_pooler
view_sampler

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.view_pooler.view_pooler
====================================================
view_pooler
.. automodule:: pytorch3d.implicitron.models.view_pooler.view_pooler
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.view_pooler.view_sampler
=====================================================
view_sampler
.. automodule:: pytorch3d.implicitron.models.view_pooler.view_sampler
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,6 @@
pytorch3d.implicitron.models.visualization
==========================================
.. toctree::
render_flyaround

View File

@@ -0,0 +1,9 @@
pytorch3d.implicitron.models.visualization.render_flyaround
===========================================================
render_flyaround
.. automodule:: pytorch3d.implicitron.models.visualization.render_flyaround
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,64 @@
pytorch3d.implicitron.tools
===========================
Tools for implicitron
.. automodule:: pytorch3d.implicitron.tools.camera_utils
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.circle_fitting
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.config
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.eval_video_trajectory
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.image_utils
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.metric_utils
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.model_io
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.point_cloud_utils
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.rasterize_mc
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.stats
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.video_writer
:members:
:undoc-members:
:show-inheritance:
.. automodule:: pytorch3d.implicitron.tools.vis_utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -12,4 +12,5 @@ API Documentation
utils
datasets
common
vis
vis/index
implicitron/index

View File

@@ -1,7 +1,9 @@
blending
pytorch3d.renderer.blending
===========================
blending
.. automodule:: pytorch3d.renderer.blending
:members:
:undoc-members:
:show-inheritance:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.camera_conversions
=====================================
camera_conversions
.. automodule:: pytorch3d.renderer.camera_conversions
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.camera_utils
===============================
camera_utils
.. automodule:: pytorch3d.renderer.camera_utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +1,9 @@
pytorch3d.renderer.cameras
==========================
cameras
===========================
.. automodule:: pytorch3d.renderer.cameras
:members:
:undoc-members:
:show-inheritance:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.compositing
==============================
compositing
.. automodule:: pytorch3d.renderer.compositing
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.fisheyecameras
=================================
fisheyecameras
.. automodule:: pytorch3d.renderer.fisheyecameras
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.harmonic_embedding
==============================================
harmonic_embedding
.. automodule:: pytorch3d.renderer.implicit.harmonic_embedding
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,11 @@
pytorch3d.renderer.implicit
===========================
.. toctree::
harmonic_embedding
raymarching
raysampling
renderer
sample_pdf
utils

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.raymarching
=======================================
raymarching
.. automodule:: pytorch3d.renderer.implicit.raymarching
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.raysampling
=======================================
raysampling
.. automodule:: pytorch3d.renderer.implicit.raysampling
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.renderer
====================================
renderer
.. automodule:: pytorch3d.renderer.implicit.renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.sample_pdf
======================================
sample_pdf
.. automodule:: pytorch3d.renderer.implicit.sample_pdf
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.implicit.utils
=================================
utils
.. automodule:: pytorch3d.renderer.implicit.utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,15 +1,19 @@
pytorch3d.renderer
===========================
pytorch3d.renderer
==================
.. toctree::
rasterizer
blending
camera_conversions
camera_utils
cameras
compositing
fisheyecameras
lighting
materials
texturing
blending
shading
shader
renderer
utils
splatter_blend
utils
implicit/index
mesh/index
opengl/index
points/index

View File

@@ -1,6 +1,9 @@
lighting
pytorch3d.renderer.lighting
===========================
lighting
.. automodule:: pytorch3d.renderer.lighting
:members:
:undoc-members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +1,9 @@
pytorch3d.renderer.materials
============================
materials
===========================
.. automodule:: pytorch3d.renderer.materials
:members:
:undoc-members:
:show-inheritance:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.clip
============================
clip
.. automodule:: pytorch3d.renderer.mesh.clip
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,13 @@
pytorch3d.renderer.mesh
=======================
.. toctree::
clip
rasterize_meshes
rasterizer
renderer
shader
shading
textures
utils

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.rasterize_meshes
========================================
rasterize_meshes
.. automodule:: pytorch3d.renderer.mesh.rasterize_meshes
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.rasterizer
==================================
rasterizer
.. automodule:: pytorch3d.renderer.mesh.rasterizer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.renderer
================================
renderer
.. automodule:: pytorch3d.renderer.mesh.renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +1,9 @@
pytorch3d.renderer.mesh.shader
==============================
shader
===========================
.. automodule:: pytorch3d.renderer.mesh.shader
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +1,9 @@
pytorch3d.renderer.mesh.shading
===============================
shading
===========================
.. automodule:: pytorch3d.renderer.mesh.shading
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.textures
================================
textures
.. automodule:: pytorch3d.renderer.mesh.textures
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.mesh.utils
=============================
utils
.. automodule:: pytorch3d.renderer.mesh.utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,7 @@
pytorch3d.renderer.opengl
=========================
.. toctree::
opengl_utils
rasterizer_opengl

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.opengl.opengl_utils
======================================
opengl_utils
.. automodule:: pytorch3d.renderer.opengl.opengl_utils
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.opengl.rasterizer_opengl
===========================================
rasterizer_opengl
.. automodule:: pytorch3d.renderer.opengl.rasterizer_opengl
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.compositor
====================================
compositor
.. automodule:: pytorch3d.renderer.points.compositor
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,10 @@
pytorch3d.renderer.points
=========================
.. toctree::
compositor
rasterize_points
rasterizer
renderer
pulsar/index

View File

@@ -0,0 +1,7 @@
pytorch3d.renderer.points.pulsar
================================
.. toctree::
renderer
unified

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.pulsar.renderer
=========================================
renderer
.. automodule:: pytorch3d.renderer.points.pulsar.renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.pulsar.unified
========================================
unified
.. automodule:: pytorch3d.renderer.points.pulsar.unified
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.rasterize_points
==========================================
rasterize_points
.. automodule:: pytorch3d.renderer.points.rasterize_points
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.rasterizer
====================================
rasterizer
.. automodule:: pytorch3d.renderer.points.rasterizer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.points.renderer
==================================
renderer
.. automodule:: pytorch3d.renderer.points.renderer
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,10 +0,0 @@
rasterizer
===========================
.. automodule:: pytorch3d.renderer.mesh.rasterize_meshes
:members:
:undoc-members:
.. automodule:: pytorch3d.renderer.mesh.rasterizer
:members:
:undoc-members:

View File

@@ -0,0 +1,9 @@
pytorch3d.renderer.splatter_blend
=================================
splatter_blend
.. automodule:: pytorch3d.renderer.splatter_blend
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
texturing
===========================
.. automodule:: pytorch3d.renderer.mesh.texturing
:members:
:undoc-members:

View File

@@ -1,6 +1,9 @@
pytorch3d.renderer.utils
========================
utils
===========================
.. automodule:: pytorch3d.renderer.utils
:members:
:undoc-members:
:undoc-members:
:show-inheritance:

View File

@@ -1,6 +0,0 @@
pytorch3d.vis
===========================
.. automodule:: pytorch3d.vis
:members:
:undoc-members:

View File

@@ -0,0 +1,7 @@
pytorch3d.vis
=============
.. toctree::
plotly_vis
texture_vis

View File

@@ -0,0 +1,9 @@
pytorch3d.vis.plotly_vis
========================
plotly_vis
.. automodule:: pytorch3d.vis.plotly_vis
:members:
:undoc-members:
:show-inheritance:

View File

@@ -0,0 +1,9 @@
pytorch3d.vis.texture_vis
=========================
texture_vis
.. automodule:: pytorch3d.vis.texture_vis
:members:
:undoc-members:
:show-inheritance:

View File

@@ -85,7 +85,7 @@ cameras_ndc = PerspectiveCameras(focal_length=fcl_ndc, principal_point=prp_ndc)
# Screen space camera
image_size = ((128, 256),) # (h, w)
fcl_screen = (76.8,) # fcl_ndc * min(image_size) / 2
prp_screen = ((115.2, 48), ) # w / 2 - px_ndc * min(image_size) / 2, h / 2 - py_ndc * min(image_size) / 2
prp_screen = ((115.2, 32), ) # w / 2 - px_ndc * min(image_size) / 2, h / 2 - py_ndc * min(image_size) / 2
cameras_screen = PerspectiveCameras(focal_length=fcl_screen, principal_point=prp_screen, in_ndc=False, image_size=image_size)
```

View File

@@ -7,20 +7,20 @@ sidebar_label: File IO
There is a flexible interface for loading and saving point clouds and meshes from different formats.
The main usage is via the `pytorch3d.io.IO` object, and its methods
`load_mesh`, `save_mesh`, `load_point_cloud` and `save_point_cloud`.
`load_mesh`, `save_mesh`, `load_pointcloud` and `save_pointcloud`.
For example, to load a mesh you might do
```
from pytorch3d.io import IO
device=torch.device("cuda:0")
mesh = IO().load_mesh("mymesh.ply", device=device)
mesh = IO().load_mesh("mymesh.obj", device=device)
```
and to save a pointcloud you might do
```
pcl = Pointclouds(...)
IO().save_point_cloud(pcl, "output_pointcloud.obj")
IO().save_pointcloud(pcl, "output_pointcloud.ply")
```
For meshes, this supports OBJ, PLY and OFF files.
@@ -31,4 +31,4 @@ In addition, there is experimental support for loading meshes from
[glTF 2 assets](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0)
stored either in a GLB container file or a glTF JSON file with embedded binary data.
This must be enabled explicitly, as described in
`pytorch3d/io/experimental_gltf_io.ply`.
`pytorch3d/io/experimental_gltf_io.py`.

Some files were not shown because too many files have changed in this diff Show More