mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2026-02-27 00:36:02 +08:00
Compare commits
19 Commits
v0.7.6
...
export-D58
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0eac8299d4 | ||
|
|
b0462d8079 | ||
|
|
b66d17a324 | ||
|
|
717493cb79 | ||
|
|
302da69461 | ||
|
|
4ae25bfce7 | ||
|
|
bd52f4a408 | ||
|
|
17117106e4 | ||
|
|
aec76bb4c8 | ||
|
|
47d5dc8824 | ||
|
|
fe0b1bae49 | ||
|
|
ccf22911d4 | ||
|
|
128be02fc0 | ||
|
|
31e3488a51 | ||
|
|
b215776f2d | ||
|
|
38cf0dc1c5 | ||
|
|
7566530669 | ||
|
|
a27755db41 | ||
|
|
3da7703c5a |
@@ -302,6 +302,34 @@ workflows:
|
|||||||
name: linux_conda_py38_cu121_pyt220
|
name: linux_conda_py38_cu121_pyt220
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
pytorch_version: 2.2.0
|
pytorch_version: 2.2.0
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu118
|
||||||
|
name: linux_conda_py38_cu118_pyt222
|
||||||
|
python_version: '3.8'
|
||||||
|
pytorch_version: 2.2.2
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda121
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu121
|
||||||
|
name: linux_conda_py38_cu121_pyt222
|
||||||
|
python_version: '3.8'
|
||||||
|
pytorch_version: 2.2.2
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu118
|
||||||
|
name: linux_conda_py38_cu118_pyt231
|
||||||
|
python_version: '3.8'
|
||||||
|
pytorch_version: 2.3.1
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda121
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu121
|
||||||
|
name: linux_conda_py38_cu121_pyt231
|
||||||
|
python_version: '3.8'
|
||||||
|
pytorch_version: 2.3.1
|
||||||
- binary_linux_conda:
|
- binary_linux_conda:
|
||||||
conda_docker_image: pytorch/conda-builder:cuda113
|
conda_docker_image: pytorch/conda-builder:cuda113
|
||||||
context: DOCKERHUB_TOKEN
|
context: DOCKERHUB_TOKEN
|
||||||
@@ -442,6 +470,34 @@ workflows:
|
|||||||
name: linux_conda_py39_cu121_pyt220
|
name: linux_conda_py39_cu121_pyt220
|
||||||
python_version: '3.9'
|
python_version: '3.9'
|
||||||
pytorch_version: 2.2.0
|
pytorch_version: 2.2.0
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu118
|
||||||
|
name: linux_conda_py39_cu118_pyt222
|
||||||
|
python_version: '3.9'
|
||||||
|
pytorch_version: 2.2.2
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda121
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu121
|
||||||
|
name: linux_conda_py39_cu121_pyt222
|
||||||
|
python_version: '3.9'
|
||||||
|
pytorch_version: 2.2.2
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu118
|
||||||
|
name: linux_conda_py39_cu118_pyt231
|
||||||
|
python_version: '3.9'
|
||||||
|
pytorch_version: 2.3.1
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda121
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu121
|
||||||
|
name: linux_conda_py39_cu121_pyt231
|
||||||
|
python_version: '3.9'
|
||||||
|
pytorch_version: 2.3.1
|
||||||
- binary_linux_conda:
|
- binary_linux_conda:
|
||||||
conda_docker_image: pytorch/conda-builder:cuda113
|
conda_docker_image: pytorch/conda-builder:cuda113
|
||||||
context: DOCKERHUB_TOKEN
|
context: DOCKERHUB_TOKEN
|
||||||
@@ -582,6 +638,34 @@ workflows:
|
|||||||
name: linux_conda_py310_cu121_pyt220
|
name: linux_conda_py310_cu121_pyt220
|
||||||
python_version: '3.10'
|
python_version: '3.10'
|
||||||
pytorch_version: 2.2.0
|
pytorch_version: 2.2.0
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu118
|
||||||
|
name: linux_conda_py310_cu118_pyt222
|
||||||
|
python_version: '3.10'
|
||||||
|
pytorch_version: 2.2.2
|
||||||
|
- binary_linux_conda:
|
||||||
|
conda_docker_image: pytorch/conda-builder:cuda121
|
||||||
|
context: DOCKERHUB_TOKEN
|
||||||
|
cu_version: cu121
|
||||||
|
name: linux_conda_py310_cu121_pyt222
|
||||||
|
python_version: '3.10'
|
||||||
|
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:
|
- binary_linux_conda:
|
||||||
conda_docker_image: pytorch/conda-builder:cuda118
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
context: DOCKERHUB_TOKEN
|
context: DOCKERHUB_TOKEN
|
||||||
@@ -638,6 +722,34 @@ workflows:
|
|||||||
name: linux_conda_py311_cu121_pyt220
|
name: linux_conda_py311_cu121_pyt220
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
pytorch_version: 2.2.0
|
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:
|
- binary_linux_conda:
|
||||||
conda_docker_image: pytorch/conda-builder:cuda118
|
conda_docker_image: pytorch/conda-builder:cuda118
|
||||||
context: DOCKERHUB_TOKEN
|
context: DOCKERHUB_TOKEN
|
||||||
@@ -652,6 +764,34 @@ workflows:
|
|||||||
name: linux_conda_py312_cu121_pyt220
|
name: linux_conda_py312_cu121_pyt220
|
||||||
python_version: '3.12'
|
python_version: '3.12'
|
||||||
pytorch_version: 2.2.0
|
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_cuda:
|
- binary_linux_conda_cuda:
|
||||||
name: testrun_conda_cuda_py310_cu117_pyt201
|
name: testrun_conda_cuda_py310_cu117_pyt201
|
||||||
context: DOCKERHUB_TOKEN
|
context: DOCKERHUB_TOKEN
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ CONDA_CUDA_VERSIONS = {
|
|||||||
"2.1.1": ["cu118", "cu121"],
|
"2.1.1": ["cu118", "cu121"],
|
||||||
"2.1.2": ["cu118", "cu121"],
|
"2.1.2": ["cu118", "cu121"],
|
||||||
"2.2.0": ["cu118", "cu121"],
|
"2.2.0": ["cu118", "cu121"],
|
||||||
|
"2.2.2": ["cu118", "cu121"],
|
||||||
|
"2.3.1": ["cu118", "cu121"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ The core library is written in PyTorch. Several components have underlying imple
|
|||||||
|
|
||||||
- Linux or macOS or Windows
|
- Linux or macOS or Windows
|
||||||
- Python 3.8, 3.9 or 3.10
|
- Python 3.8, 3.9 or 3.10
|
||||||
- PyTorch 1.12.0, 1.12.1, 1.13.0, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2 or 2.2.0.
|
- PyTorch 1.12.0, 1.12.1, 1.13.0, 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 2.2.1, 2.2.2, 2.3.0 or 2.3.1.
|
||||||
- torchvision that matches the PyTorch installation. You can install them together as explained at pytorch.org to make sure of this.
|
- 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
|
- gcc & g++ ≥ 4.9
|
||||||
- [fvcore](https://github.com/facebookresearch/fvcore)
|
- [fvcore](https://github.com/facebookresearch/fvcore)
|
||||||
|
|||||||
@@ -83,25 +83,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -70,25 +70,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -45,25 +45,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -405,7 +411,7 @@
|
|||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"random_model_images = shapenet_dataset.render(\n",
|
"random_model_images = shapenet_dataset.render(\n",
|
||||||
" sample_nums=[3],\n",
|
" sample_nums=[5],\n",
|
||||||
" device=device,\n",
|
" device=device,\n",
|
||||||
" cameras=cameras,\n",
|
" cameras=cameras,\n",
|
||||||
" raster_settings=raster_settings,\n",
|
" raster_settings=raster_settings,\n",
|
||||||
|
|||||||
@@ -84,25 +84,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,25 +50,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -62,25 +62,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,25 +41,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -72,25 +72,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -66,25 +66,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -44,25 +44,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -51,25 +51,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -67,25 +67,31 @@
|
|||||||
"import os\n",
|
"import os\n",
|
||||||
"import sys\n",
|
"import sys\n",
|
||||||
"import torch\n",
|
"import torch\n",
|
||||||
|
"import subprocess\n",
|
||||||
"need_pytorch3d=False\n",
|
"need_pytorch3d=False\n",
|
||||||
"try:\n",
|
"try:\n",
|
||||||
" import pytorch3d\n",
|
" import pytorch3d\n",
|
||||||
"except ModuleNotFoundError:\n",
|
"except ModuleNotFoundError:\n",
|
||||||
" need_pytorch3d=True\n",
|
" need_pytorch3d=True\n",
|
||||||
"if need_pytorch3d:\n",
|
"if need_pytorch3d:\n",
|
||||||
" if torch.__version__.startswith(\"2.2.\") and sys.platform.startswith(\"linux\"):\n",
|
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
||||||
" # We try to install PyTorch3D via a released wheel.\n",
|
" version_str=\"\".join([\n",
|
||||||
" pyt_version_str=torch.__version__.split(\"+\")[0].replace(\".\", \"\")\n",
|
" f\"py3{sys.version_info.minor}_cu\",\n",
|
||||||
" version_str=\"\".join([\n",
|
" torch.version.cuda.replace(\".\",\"\"),\n",
|
||||||
" f\"py3{sys.version_info.minor}_cu\",\n",
|
" f\"_pyt{pyt_version_str}\"\n",
|
||||||
" torch.version.cuda.replace(\".\",\"\"),\n",
|
" ])\n",
|
||||||
" f\"_pyt{pyt_version_str}\"\n",
|
" !pip install fvcore iopath\n",
|
||||||
" ])\n",
|
" if sys.platform.startswith(\"linux\"):\n",
|
||||||
" !pip install fvcore iopath\n",
|
" print(\"Trying to install wheel for PyTorch3D\")\n",
|
||||||
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
" !pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/{version_str}/download.html\n",
|
||||||
" else:\n",
|
" pip_list = !pip freeze\n",
|
||||||
" # We try to install PyTorch3D from source.\n",
|
" need_pytorch3d = not any(i.startswith(\"pytorch3d==\") for i in pip_list)\n",
|
||||||
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
" if need_pytorch3d:\n",
|
||||||
|
" print(f\"failed to find/install wheel for {version_str}\")\n",
|
||||||
|
"if need_pytorch3d:\n",
|
||||||
|
" print(\"Installing PyTorch3D from source\")\n",
|
||||||
|
" !pip install ninja\n",
|
||||||
|
" !pip install 'git+https://github.com/facebookresearch/pytorch3d.git@stable'"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -80,6 +80,12 @@ def setup_cuda():
|
|||||||
def setup_conda_pytorch_constraint() -> List[str]:
|
def setup_conda_pytorch_constraint() -> List[str]:
|
||||||
pytorch_constraint = f"- pytorch=={PYTORCH_VERSION}"
|
pytorch_constraint = f"- pytorch=={PYTORCH_VERSION}"
|
||||||
os.environ["CONDA_PYTORCH_CONSTRAINT"] = pytorch_constraint
|
os.environ["CONDA_PYTORCH_CONSTRAINT"] = pytorch_constraint
|
||||||
|
if pytorch_major_minor < (2, 2):
|
||||||
|
os.environ["CONDA_PYTORCH_MKL_CONSTRAINT"] = "- mkl!=2024.1.0"
|
||||||
|
os.environ["SETUPTOOLS_CONSTRAINT"] = "- setuptools<70"
|
||||||
|
else:
|
||||||
|
os.environ["CONDA_PYTORCH_MKL_CONSTRAINT"] = ""
|
||||||
|
os.environ["SETUPTOOLS_CONSTRAINT"] = "- setuptools"
|
||||||
os.environ["CONDA_PYTORCH_BUILD_CONSTRAINT"] = pytorch_constraint
|
os.environ["CONDA_PYTORCH_BUILD_CONSTRAINT"] = pytorch_constraint
|
||||||
os.environ["PYTORCH_VERSION_NODOT"] = PYTORCH_VERSION.replace(".", "")
|
os.environ["PYTORCH_VERSION_NODOT"] = PYTORCH_VERSION.replace(".", "")
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ requirements:
|
|||||||
|
|
||||||
host:
|
host:
|
||||||
- python
|
- python
|
||||||
- setuptools
|
{{ environ.get('SETUPTOOLS_CONSTRAINT') }}
|
||||||
{{ environ.get('CONDA_PYTORCH_BUILD_CONSTRAINT') }}
|
{{ environ.get('CONDA_PYTORCH_BUILD_CONSTRAINT') }}
|
||||||
|
{{ environ.get('CONDA_PYTORCH_MKL_CONSTRAINT') }}
|
||||||
{{ environ.get('CONDA_CUDATOOLKIT_CONSTRAINT') }}
|
{{ environ.get('CONDA_CUDATOOLKIT_CONSTRAINT') }}
|
||||||
{{ environ.get('CONDA_CPUONLY_FEATURE') }}
|
{{ environ.get('CONDA_CPUONLY_FEATURE') }}
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
""""
|
""""
|
||||||
This file is the entry point for launching experiments with Implicitron.
|
This file is the entry point for launching experiments with Implicitron.
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Script to visualize a previously trained model. Example call:
|
Script to visualize a previously trained model. Example call:
|
||||||
|
|
||||||
|
|||||||
@@ -343,12 +343,14 @@ class RadianceFieldRenderer(torch.nn.Module):
|
|||||||
# For a full render pass concatenate the output chunks,
|
# For a full render pass concatenate the output chunks,
|
||||||
# and reshape to image size.
|
# and reshape to image size.
|
||||||
out = {
|
out = {
|
||||||
k: torch.cat(
|
k: (
|
||||||
[ch_o[k] for ch_o in chunk_outputs],
|
torch.cat(
|
||||||
dim=1,
|
[ch_o[k] for ch_o in chunk_outputs],
|
||||||
).view(-1, *self._image_size, 3)
|
dim=1,
|
||||||
if chunk_outputs[0][k] is not None
|
).view(-1, *self._image_size, 3)
|
||||||
else None
|
if chunk_outputs[0][k] is not None
|
||||||
|
else None
|
||||||
|
)
|
||||||
for k in ("rgb_fine", "rgb_coarse", "rgb_gt")
|
for k in ("rgb_fine", "rgb_coarse", "rgb_gt")
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -4,4 +4,6 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
__version__ = "0.7.6"
|
__version__ = "0.7.6"
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .datatypes import Device, get_device, make_device
|
from .datatypes import Device, get_device, make_device
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Sequence, Tuple, Union
|
from typing import Sequence, Tuple, Union
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import math
|
import math
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,5 +4,7 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .symeig3x3 import symeig3x3
|
from .symeig3x3 import symeig3x3
|
||||||
from .utils import _safe_det_3x3
|
from .utils import _safe_det_3x3
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import math
|
import math
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
|
|||||||
@@ -338,7 +338,7 @@ std::tuple<at::Tensor, at::Tensor> KNearestNeighborIdxCuda(
|
|||||||
|
|
||||||
TORCH_CHECK((norm == 1) || (norm == 2), "Norm must be 1 or 2.");
|
TORCH_CHECK((norm == 1) || (norm == 2), "Norm must be 1 or 2.");
|
||||||
|
|
||||||
TORCH_CHECK(p2.size(2) == D, "Point sets must have the same last dimension");
|
TORCH_CHECK(p1.size(2) == D, "Point sets must have the same last dimension");
|
||||||
auto long_dtype = lengths1.options().dtype(at::kLong);
|
auto long_dtype = lengths1.options().dtype(at::kLong);
|
||||||
auto idxs = at::zeros({N, P1, K}, long_dtype);
|
auto idxs = at::zeros({N, P1, K}, long_dtype);
|
||||||
auto dists = at::zeros({N, P1, K}, p1.options());
|
auto dists = at::zeros({N, P1, K}, p1.options());
|
||||||
|
|||||||
@@ -382,6 +382,44 @@ __global__ void GenerateFacesKernel(
|
|||||||
} // end for grid-strided kernel
|
} // end for grid-strided kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ATen/Torch does not have an exclusive-scan operator. Additionally, in the
|
||||||
|
// code below we need to get the "total number of items to work on" after
|
||||||
|
// a scan, which with an inclusive-scan would simply be the value of the last
|
||||||
|
// element in the tensor.
|
||||||
|
//
|
||||||
|
// This utility function hits two birds with one stone, by running
|
||||||
|
// an inclusive-scan into a right-shifted view of a tensor that's
|
||||||
|
// allocated to be one element bigger than the input tensor.
|
||||||
|
//
|
||||||
|
// Note; return tensor is `int64_t` per element, even if the input
|
||||||
|
// tensor is only 32-bit. Also, the return tensor is one element bigger
|
||||||
|
// than the input one.
|
||||||
|
//
|
||||||
|
// Secondary optional argument is an output argument that gets the
|
||||||
|
// value of the last element of the return tensor (because you almost
|
||||||
|
// always need this CPU-side right after this function anyway).
|
||||||
|
static at::Tensor ExclusiveScanAndTotal(
|
||||||
|
const at::Tensor& inTensor,
|
||||||
|
int64_t* optTotal = nullptr) {
|
||||||
|
const auto inSize = inTensor.sizes()[0];
|
||||||
|
auto retTensor = at::zeros({inSize + 1}, at::kLong).to(inTensor.device());
|
||||||
|
|
||||||
|
using at::indexing::None;
|
||||||
|
using at::indexing::Slice;
|
||||||
|
auto rightShiftedView = retTensor.index({Slice(1, None)});
|
||||||
|
|
||||||
|
// Do an (inclusive-scan) cumulative sum in to the view that's
|
||||||
|
// shifted one element to the right...
|
||||||
|
at::cumsum_out(rightShiftedView, inTensor, 0, at::kLong);
|
||||||
|
|
||||||
|
if (optTotal) {
|
||||||
|
*optTotal = retTensor[inSize].cpu().item<int64_t>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ...so that the not-shifted tensor holds the exclusive-scan
|
||||||
|
return retTensor;
|
||||||
|
}
|
||||||
|
|
||||||
// Entrance for marching cubes cuda extension. Marching Cubes is an algorithm to
|
// Entrance for marching cubes cuda extension. Marching Cubes is an algorithm to
|
||||||
// create triangle meshes from an implicit function (one of the form f(x, y, z)
|
// create triangle meshes from an implicit function (one of the form f(x, y, z)
|
||||||
// = 0). It works by iteratively checking a grid of cubes superimposed over a
|
// = 0). It works by iteratively checking a grid of cubes superimposed over a
|
||||||
@@ -444,20 +482,18 @@ std::tuple<at::Tensor, at::Tensor, at::Tensor> MarchingCubesCuda(
|
|||||||
using at::indexing::Slice;
|
using at::indexing::Slice;
|
||||||
|
|
||||||
auto d_voxelVerts =
|
auto d_voxelVerts =
|
||||||
at::zeros({numVoxels + 1}, at::TensorOptions().dtype(at::kInt))
|
at::zeros({numVoxels}, at::TensorOptions().dtype(at::kInt))
|
||||||
.to(vol.device());
|
.to(vol.device());
|
||||||
auto d_voxelVerts_ = d_voxelVerts.index({Slice(1, None)});
|
|
||||||
auto d_voxelOccupied =
|
auto d_voxelOccupied =
|
||||||
at::zeros({numVoxels + 1}, at::TensorOptions().dtype(at::kInt))
|
at::zeros({numVoxels}, at::TensorOptions().dtype(at::kInt))
|
||||||
.to(vol.device());
|
.to(vol.device());
|
||||||
auto d_voxelOccupied_ = d_voxelOccupied.index({Slice(1, None)});
|
|
||||||
|
|
||||||
// Execute "ClassifyVoxelKernel" kernel to precompute
|
// Execute "ClassifyVoxelKernel" kernel to precompute
|
||||||
// two arrays - d_voxelOccupied and d_voxelVertices to global memory,
|
// two arrays - d_voxelOccupied and d_voxelVertices to global memory,
|
||||||
// which stores the occupancy state and number of voxel vertices per voxel.
|
// which stores the occupancy state and number of voxel vertices per voxel.
|
||||||
ClassifyVoxelKernel<<<grid, threads, 0, stream>>>(
|
ClassifyVoxelKernel<<<grid, threads, 0, stream>>>(
|
||||||
d_voxelVerts_.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
d_voxelVerts.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
||||||
d_voxelOccupied_.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
d_voxelOccupied.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
||||||
vol.packed_accessor32<float, 3, at::RestrictPtrTraits>(),
|
vol.packed_accessor32<float, 3, at::RestrictPtrTraits>(),
|
||||||
isolevel);
|
isolevel);
|
||||||
AT_CUDA_CHECK(cudaGetLastError());
|
AT_CUDA_CHECK(cudaGetLastError());
|
||||||
@@ -467,12 +503,9 @@ std::tuple<at::Tensor, at::Tensor, at::Tensor> MarchingCubesCuda(
|
|||||||
// count for voxels in the grid and compute the number of active voxels.
|
// count for voxels in the grid and compute the number of active voxels.
|
||||||
// If the number of active voxels is 0, return zero tensor for verts and
|
// If the number of active voxels is 0, return zero tensor for verts and
|
||||||
// faces.
|
// faces.
|
||||||
|
int64_t activeVoxels = 0;
|
||||||
auto d_voxelOccupiedScan = at::cumsum(d_voxelOccupied, 0);
|
auto d_voxelOccupiedScan =
|
||||||
auto d_voxelOccupiedScan_ = d_voxelOccupiedScan.index({Slice(1, None)});
|
ExclusiveScanAndTotal(d_voxelOccupied, &activeVoxels);
|
||||||
|
|
||||||
// number of active voxels
|
|
||||||
int64_t activeVoxels = d_voxelOccupiedScan[numVoxels].cpu().item<int64_t>();
|
|
||||||
|
|
||||||
const int device_id = vol.device().index();
|
const int device_id = vol.device().index();
|
||||||
auto opt = at::TensorOptions().dtype(at::kInt).device(at::kCUDA, device_id);
|
auto opt = at::TensorOptions().dtype(at::kInt).device(at::kCUDA, device_id);
|
||||||
@@ -487,24 +520,21 @@ std::tuple<at::Tensor, at::Tensor, at::Tensor> MarchingCubesCuda(
|
|||||||
return std::make_tuple(verts, faces, ids);
|
return std::make_tuple(verts, faces, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute "CompactVoxelsKernel" kernel to compress voxels for accleration.
|
// Execute "CompactVoxelsKernel" kernel to compress voxels for acceleration.
|
||||||
// This allows us to run triangle generation on only the occupied voxels.
|
// This allows us to run triangle generation on only the occupied voxels.
|
||||||
auto d_compVoxelArray = at::zeros({activeVoxels}, opt);
|
auto d_compVoxelArray = at::zeros({activeVoxels}, opt);
|
||||||
CompactVoxelsKernel<<<grid, threads, 0, stream>>>(
|
CompactVoxelsKernel<<<grid, threads, 0, stream>>>(
|
||||||
d_compVoxelArray.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
d_compVoxelArray.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
||||||
d_voxelOccupied.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
d_voxelOccupied.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
||||||
d_voxelOccupiedScan_
|
d_voxelOccupiedScan
|
||||||
.packed_accessor32<int64_t, 1, at::RestrictPtrTraits>(),
|
.packed_accessor32<int64_t, 1, at::RestrictPtrTraits>(),
|
||||||
numVoxels);
|
numVoxels);
|
||||||
AT_CUDA_CHECK(cudaGetLastError());
|
AT_CUDA_CHECK(cudaGetLastError());
|
||||||
cudaDeviceSynchronize();
|
cudaDeviceSynchronize();
|
||||||
|
|
||||||
// Scan d_voxelVerts array to generate offsets of vertices for each voxel
|
// Scan d_voxelVerts array to generate offsets of vertices for each voxel
|
||||||
auto d_voxelVertsScan = at::cumsum(d_voxelVerts, 0);
|
int64_t totalVerts = 0;
|
||||||
auto d_voxelVertsScan_ = d_voxelVertsScan.index({Slice(1, None)});
|
auto d_voxelVertsScan = ExclusiveScanAndTotal(d_voxelVerts, &totalVerts);
|
||||||
|
|
||||||
// total number of vertices
|
|
||||||
int64_t totalVerts = d_voxelVertsScan[numVoxels].cpu().item<int64_t>();
|
|
||||||
|
|
||||||
// Execute "GenerateFacesKernel" kernel
|
// Execute "GenerateFacesKernel" kernel
|
||||||
// This runs only on the occupied voxels.
|
// This runs only on the occupied voxels.
|
||||||
@@ -524,7 +554,7 @@ std::tuple<at::Tensor, at::Tensor, at::Tensor> MarchingCubesCuda(
|
|||||||
faces.packed_accessor<int64_t, 2, at::RestrictPtrTraits>(),
|
faces.packed_accessor<int64_t, 2, at::RestrictPtrTraits>(),
|
||||||
ids.packed_accessor<int64_t, 1, at::RestrictPtrTraits>(),
|
ids.packed_accessor<int64_t, 1, at::RestrictPtrTraits>(),
|
||||||
d_compVoxelArray.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
d_compVoxelArray.packed_accessor32<int, 1, at::RestrictPtrTraits>(),
|
||||||
d_voxelVertsScan_.packed_accessor32<int64_t, 1, at::RestrictPtrTraits>(),
|
d_voxelVertsScan.packed_accessor32<int64_t, 1, at::RestrictPtrTraits>(),
|
||||||
activeVoxels,
|
activeVoxels,
|
||||||
vol.packed_accessor32<float, 3, at::RestrictPtrTraits>(),
|
vol.packed_accessor32<float, 3, at::RestrictPtrTraits>(),
|
||||||
faceTable.packed_accessor32<int, 2, at::RestrictPtrTraits>(),
|
faceTable.packed_accessor32<int, 2, at::RestrictPtrTraits>(),
|
||||||
|
|||||||
@@ -357,11 +357,11 @@ void MAX_WS(
|
|||||||
//
|
//
|
||||||
//
|
//
|
||||||
#define END_PARALLEL() \
|
#define END_PARALLEL() \
|
||||||
end_parallel:; \
|
end_parallel :; \
|
||||||
}
|
}
|
||||||
#define END_PARALLEL_NORET() }
|
#define END_PARALLEL_NORET() }
|
||||||
#define END_PARALLEL_2D() \
|
#define END_PARALLEL_2D() \
|
||||||
end_parallel:; \
|
end_parallel :; \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
#define END_PARALLEL_2D_NORET() \
|
#define END_PARALLEL_2D_NORET() \
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ HOST void construct(
|
|||||||
MALLOC(self->di_sorted_d, DrawInfo, max_num_balls);
|
MALLOC(self->di_sorted_d, DrawInfo, max_num_balls);
|
||||||
MALLOC(self->region_flags_d, char, max_num_balls);
|
MALLOC(self->region_flags_d, char, max_num_balls);
|
||||||
MALLOC(self->num_selected_d, size_t, 1);
|
MALLOC(self->num_selected_d, size_t, 1);
|
||||||
MALLOC(self->forw_info_d, float, width* height*(3 + 2 * n_track));
|
MALLOC(self->forw_info_d, float, width* height * (3 + 2 * n_track));
|
||||||
MALLOC(self->min_max_pixels_d, IntersectInfo, 1);
|
MALLOC(self->min_max_pixels_d, IntersectInfo, 1);
|
||||||
MALLOC(self->grad_pos_d, float3, max_num_balls);
|
MALLOC(self->grad_pos_d, float3, max_num_balls);
|
||||||
MALLOC(self->grad_col_d, float, max_num_balls* n_channels);
|
MALLOC(self->grad_col_d, float, max_num_balls* n_channels);
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ GLOBAL void render(
|
|||||||
/** Whether loading of balls is completed. */
|
/** Whether loading of balls is completed. */
|
||||||
SHARED bool loading_done;
|
SHARED bool loading_done;
|
||||||
/** The number of balls loaded overall (just for statistics). */
|
/** The number of balls loaded overall (just for statistics). */
|
||||||
SHARED int n_balls_loaded;
|
[[maybe_unused]] SHARED int n_balls_loaded;
|
||||||
/** The area this thread block covers. */
|
/** The area this thread block covers. */
|
||||||
SHARED IntersectInfo block_area;
|
SHARED IntersectInfo block_area;
|
||||||
if (thread_block.thread_rank() == 0) {
|
if (thread_block.thread_rank() == 0) {
|
||||||
|
|||||||
@@ -244,8 +244,7 @@ at::Tensor RasterizeCoarseCuda(
|
|||||||
if (num_bins_y >= kMaxItemsPerBin || num_bins_x >= kMaxItemsPerBin) {
|
if (num_bins_y >= kMaxItemsPerBin || num_bins_x >= kMaxItemsPerBin) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << "In RasterizeCoarseCuda got num_bins_y: " << num_bins_y
|
ss << "In RasterizeCoarseCuda got num_bins_y: " << num_bins_y
|
||||||
<< ", num_bins_x: " << num_bins_x << ", "
|
<< ", num_bins_x: " << num_bins_x << ", " << "; that's too many!";
|
||||||
<< "; that's too many!";
|
|
||||||
AT_ERROR(ss.str());
|
AT_ERROR(ss.str());
|
||||||
}
|
}
|
||||||
auto opts = elems_per_batch.options().dtype(at::kInt);
|
auto opts = elems_per_batch.options().dtype(at::kInt);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .r2n2 import BlenderCamera, collate_batched_R2N2, R2N2, render_cubified_voxels
|
from .r2n2 import BlenderCamera, collate_batched_R2N2, R2N2, render_cubified_voxels
|
||||||
from .shapenet import ShapeNetCore
|
from .shapenet import ShapeNetCore
|
||||||
from .utils import collate_batched_meshes
|
from .utils import collate_batched_meshes
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .r2n2 import R2N2
|
from .r2n2 import R2N2
|
||||||
from .utils import BlenderCamera, collate_batched_R2N2, render_cubified_voxels
|
from .utils import BlenderCamera, collate_batched_R2N2, render_cubified_voxels
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import warnings
|
import warnings
|
||||||
from os import path
|
from os import path
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import math
|
import math
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .shapenet_core import ShapeNetCore
|
from .shapenet_core import ShapeNetCore
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import warnings
|
import warnings
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
from typing import Dict, List, Optional, Tuple
|
from typing import Dict, List, Optional, Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
from pytorch3d.renderer.mesh import TexturesAtlas
|
from pytorch3d.renderer.mesh import TexturesAtlas
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
from pytorch3d.implicitron.tools.config import registry
|
from pytorch3d.implicitron.tools.config import registry
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Iterator, List, Optional, Tuple
|
from typing import Iterator, List, Optional, Tuple
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
from pytorch3d.implicitron.tools.config import (
|
from pytorch3d.implicitron.tools.config import (
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import (
|
from typing import (
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import os
|
import os
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
@@ -576,11 +578,11 @@ class GenericFrameDataBuilder(FrameDataBuilderBase[FrameDataSubtype], ABC):
|
|||||||
camera_quality_score=safe_as_tensor(
|
camera_quality_score=safe_as_tensor(
|
||||||
sequence_annotation.viewpoint_quality_score, torch.float
|
sequence_annotation.viewpoint_quality_score, torch.float
|
||||||
),
|
),
|
||||||
point_cloud_quality_score=safe_as_tensor(
|
point_cloud_quality_score=(
|
||||||
point_cloud.quality_score, torch.float
|
safe_as_tensor(point_cloud.quality_score, torch.float)
|
||||||
)
|
if point_cloud is not None
|
||||||
if point_cloud is not None
|
else None
|
||||||
else None,
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
fg_mask_np: Optional[np.ndarray] = None
|
fg_mask_np: Optional[np.ndarray] = None
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import functools
|
import functools
|
||||||
import gzip
|
import gzip
|
||||||
@@ -124,9 +126,9 @@ class JsonIndexDataset(DatasetBase, ReplaceableBase):
|
|||||||
dimension of the cropping bounding box, relative to box size.
|
dimension of the cropping bounding box, relative to box size.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
frame_annotations_type: ClassVar[
|
frame_annotations_type: ClassVar[Type[types.FrameAnnotation]] = (
|
||||||
Type[types.FrameAnnotation]
|
types.FrameAnnotation
|
||||||
] = types.FrameAnnotation
|
)
|
||||||
|
|
||||||
path_manager: Any = None
|
path_manager: Any = None
|
||||||
frame_annotations_file: str = ""
|
frame_annotations_file: str = ""
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import json
|
import json
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# @lint-ignore-every LICENSELINT
|
# @lint-ignore-every LICENSELINT
|
||||||
# Adapted from https://github.com/bmild/nerf/blob/master/load_blender.py
|
# Adapted from https://github.com/bmild/nerf/blob/master/load_blender.py
|
||||||
# Copyright (c) 2020 bmild
|
# Copyright (c) 2020 bmild
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# @lint-ignore-every LICENSELINT
|
# @lint-ignore-every LICENSELINT
|
||||||
# Adapted from https://github.com/bmild/nerf/blob/master/load_llff.py
|
# Adapted from https://github.com/bmild/nerf/blob/master/load_llff.py
|
||||||
# Copyright (c) 2020 bmild
|
# Copyright (c) 2020 bmild
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import warnings
|
import warnings
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from os.path import dirname, join, realpath
|
from os.path import dirname, join, realpath
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
# This file defines a base class for dataset map providers which
|
# This file defines a base class for dataset map providers which
|
||||||
# provide data for a single scene.
|
# provide data for a single scene.
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Dict, Optional, Tuple
|
from typing import Any, Dict, Optional, Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import dataclasses
|
import dataclasses
|
||||||
import gzip
|
import gzip
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
import warnings
|
import warnings
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import cast, Optional, Tuple
|
from typing import cast, Optional, Tuple
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
@@ -88,9 +90,11 @@ def get_implicitron_sequence_pointcloud(
|
|||||||
frame_data.camera,
|
frame_data.camera,
|
||||||
frame_data.image_rgb,
|
frame_data.image_rgb,
|
||||||
frame_data.depth_map,
|
frame_data.depth_map,
|
||||||
(cast(torch.Tensor, frame_data.fg_probability) > 0.5).float()
|
(
|
||||||
if mask_points and frame_data.fg_probability is not None
|
(cast(torch.Tensor, frame_data.fg_probability) > 0.5).float()
|
||||||
else None,
|
if mask_points and frame_data.fg_probability is not None
|
||||||
|
else None
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
return point_cloud, frame_data
|
return point_cloud, frame_data
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import dataclasses
|
import dataclasses
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import warnings
|
import warnings
|
||||||
@@ -282,9 +284,9 @@ def eval_batch(
|
|||||||
image_rgb_masked=image_rgb_masked,
|
image_rgb_masked=image_rgb_masked,
|
||||||
depth_render=cloned_render["depth_render"],
|
depth_render=cloned_render["depth_render"],
|
||||||
depth_map=frame_data.depth_map,
|
depth_map=frame_data.depth_map,
|
||||||
depth_mask=frame_data.depth_mask[:1]
|
depth_mask=(
|
||||||
if frame_data.depth_mask is not None
|
frame_data.depth_mask[:1] if frame_data.depth_mask is not None else None
|
||||||
else None,
|
),
|
||||||
visdom_env=visualize_visdom_env,
|
visdom_env=visualize_visdom_env,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
# Allows to register the models
|
# Allows to register the models
|
||||||
# see: pytorch3d.implicitron.tools.config.registry:register
|
# see: pytorch3d.implicitron.tools.config.registry:register
|
||||||
from pytorch3d.implicitron.models.generic_model import GenericModel
|
from pytorch3d.implicitron.models.generic_model import GenericModel
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Any, Dict, List, Optional
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,6 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from .feature_extractor import FeatureExtractorBase
|
from .feature_extractor import FeatureExtractorBase
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import math
|
import math
|
||||||
from typing import Any, Dict, Optional, Tuple
|
from typing import Any, Dict, Optional, Tuple
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
# Note: The #noqa comments below are for unused imports of pluggable implementations
|
# Note: The #noqa comments below are for unused imports of pluggable implementations
|
||||||
# which are part of implicitron. They ensure that the registry is prepopulated.
|
# which are part of implicitron. They ensure that the registry is prepopulated.
|
||||||
@@ -395,9 +397,11 @@ class GenericModel(ImplicitronModelBase): # pyre-ignore: 13
|
|||||||
n_targets = (
|
n_targets = (
|
||||||
1
|
1
|
||||||
if evaluation_mode == EvaluationMode.EVALUATION
|
if evaluation_mode == EvaluationMode.EVALUATION
|
||||||
else batch_size
|
else (
|
||||||
if self.n_train_target_views <= 0
|
batch_size
|
||||||
else min(self.n_train_target_views, batch_size)
|
if self.n_train_target_views <= 0
|
||||||
|
else min(self.n_train_target_views, batch_size)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
# A helper function for selecting n_target first elements from the input
|
# A helper function for selecting n_target first elements from the input
|
||||||
@@ -422,9 +426,12 @@ class GenericModel(ImplicitronModelBase): # pyre-ignore: 13
|
|||||||
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
||||||
target_cameras,
|
target_cameras,
|
||||||
evaluation_mode,
|
evaluation_mode,
|
||||||
mask=mask_crop[:n_targets]
|
mask=(
|
||||||
if mask_crop is not None and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
mask_crop[:n_targets]
|
||||||
else None,
|
if mask_crop is not None
|
||||||
|
and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||||
|
else None
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# custom_args hold additional arguments to the implicit function.
|
# custom_args hold additional arguments to the implicit function.
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from typing import Dict, List, Optional, Union
|
from typing import Dict, List, Optional, Union
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This file contains
|
This file contains
|
||||||
- modules which get used by ImplicitFunction objects for decoding an embedding defined in
|
- modules which get used by ImplicitFunction objects for decoding an embedding defined in
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
# Adapted from https://github.com/lioryariv/idr/blob/main/code/model/
|
# Adapted from https://github.com/lioryariv/idr/blob/main/code/model/
|
||||||
# implicit_differentiable_renderer.py
|
# implicit_differentiable_renderer.py
|
||||||
# Copyright (c) 2020 Lior Yariv
|
# Copyright (c) 2020 Lior Yariv
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
import math
|
import math
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
@@ -102,9 +104,7 @@ class IdrFeatureField(ImplicitFunctionBase, torch.nn.Module):
|
|||||||
elif self.n_harmonic_functions_xyz >= 0 and layer_idx == 0:
|
elif self.n_harmonic_functions_xyz >= 0 and layer_idx == 0:
|
||||||
torch.nn.init.constant_(lin.bias, 0.0)
|
torch.nn.init.constant_(lin.bias, 0.0)
|
||||||
torch.nn.init.constant_(lin.weight[:, 3:], 0.0)
|
torch.nn.init.constant_(lin.weight[:, 3:], 0.0)
|
||||||
torch.nn.init.normal_(
|
torch.nn.init.normal_(lin.weight[:, :3], 0.0, 2**0.5 / out_dim**0.5)
|
||||||
lin.weight[:, :3], 0.0, 2**0.5 / out_dim**0.5
|
|
||||||
)
|
|
||||||
elif self.n_harmonic_functions_xyz >= 0 and layer_idx in self.skip_in:
|
elif self.n_harmonic_functions_xyz >= 0 and layer_idx in self.skip_in:
|
||||||
torch.nn.init.constant_(lin.bias, 0.0)
|
torch.nn.init.constant_(lin.bias, 0.0)
|
||||||
torch.nn.init.normal_(lin.weight, 0.0, 2**0.5 / out_dim**0.5)
|
torch.nn.init.normal_(lin.weight, 0.0, 2**0.5 / out_dim**0.5)
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Optional, Tuple
|
from typing import Optional, Tuple
|
||||||
|
|
||||||
@@ -193,9 +195,9 @@ class NeuralRadianceFieldBase(ImplicitFunctionBase, torch.nn.Module):
|
|||||||
embeds = create_embeddings_for_implicit_function(
|
embeds = create_embeddings_for_implicit_function(
|
||||||
xyz_world=rays_points_world,
|
xyz_world=rays_points_world,
|
||||||
# for 2nd param but got `Union[None, torch.Tensor, torch.nn.Module]`.
|
# for 2nd param but got `Union[None, torch.Tensor, torch.nn.Module]`.
|
||||||
xyz_embedding_function=self.harmonic_embedding_xyz
|
xyz_embedding_function=(
|
||||||
if self.input_xyz
|
self.harmonic_embedding_xyz if self.input_xyz else None
|
||||||
else None,
|
),
|
||||||
global_code=global_code,
|
global_code=global_code,
|
||||||
fun_viewpool=fun_viewpool,
|
fun_viewpool=fun_viewpool,
|
||||||
xyz_in_camera_coords=self.xyz_ray_dir_in_camera_coords,
|
xyz_in_camera_coords=self.xyz_ray_dir_in_camera_coords,
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
# @lint-ignore-every LICENSELINT
|
# @lint-ignore-every LICENSELINT
|
||||||
# Adapted from https://github.com/vsitzmann/scene-representation-networks
|
# Adapted from https://github.com/vsitzmann/scene-representation-networks
|
||||||
# Copyright (c) 2019 Vincent Sitzmann
|
# Copyright (c) 2019 Vincent Sitzmann
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
from typing import Any, cast, Optional, Tuple
|
from typing import Any, cast, Optional, Tuple
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
from typing import Callable, Optional
|
from typing import Callable, Optional
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This file contains classes that implement Voxel grids, both in their full resolution
|
This file contains classes that implement Voxel grids, both in their full resolution
|
||||||
as in the factorized form. There are two factorized forms implemented, Tensor rank decomposition
|
as in the factorized form. There are two factorized forms implemented, Tensor rank decomposition
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import math
|
import math
|
||||||
import warnings
|
import warnings
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
from typing import Any, Dict, Optional
|
from typing import Any, Dict, Optional
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
from typing import Any, Dict, List, Optional, Tuple
|
from typing import Any, Dict, List, Optional, Tuple
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|
||||||
|
|
||||||
# Note: The #noqa comments below are for unused imports of pluggable implementations
|
# Note: The #noqa comments below are for unused imports of pluggable implementations
|
||||||
# which are part of implicitron. They ensure that the registry is prepopulated.
|
# which are part of implicitron. They ensure that the registry is prepopulated.
|
||||||
@@ -356,9 +358,12 @@ class OverfitModel(ImplicitronModelBase): # pyre-ignore: 13
|
|||||||
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
||||||
camera,
|
camera,
|
||||||
evaluation_mode,
|
evaluation_mode,
|
||||||
mask=mask_crop
|
mask=(
|
||||||
if mask_crop is not None and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
mask_crop
|
||||||
else None,
|
if mask_crop is not None
|
||||||
|
and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||||
|
else None
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
inputs_to_be_chunked = {}
|
inputs_to_be_chunked = {}
|
||||||
@@ -381,10 +386,12 @@ class OverfitModel(ImplicitronModelBase): # pyre-ignore: 13
|
|||||||
frame_timestamp=frame_timestamp,
|
frame_timestamp=frame_timestamp,
|
||||||
)
|
)
|
||||||
implicit_functions = [
|
implicit_functions = [
|
||||||
functools.partial(implicit_function, global_code=global_code)
|
(
|
||||||
if isinstance(implicit_function, Callable)
|
functools.partial(implicit_function, global_code=global_code)
|
||||||
else functools.partial(
|
if isinstance(implicit_function, Callable)
|
||||||
implicit_function.forward, global_code=global_code
|
else functools.partial(
|
||||||
|
implicit_function.forward, global_code=global_code
|
||||||
|
)
|
||||||
)
|
)
|
||||||
for implicit_function in implicit_functions
|
for implicit_function in implicit_functions
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,3 +3,5 @@
|
|||||||
#
|
#
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under the BSD-style license found in the
|
||||||
# LICENSE file in the root directory of this source tree.
|
# LICENSE file in the root directory of this source tree.
|
||||||
|
|
||||||
|
# pyre-unsafe
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user