reduced-3dgs 1.10.4__tar.gz → 1.10.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of reduced-3dgs might be problematic. Click here for more details.
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/PKG-INFO +1 -1
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/combinations.py +8 -2
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/importance/combinations.py +8 -2
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/pruning/combinations.py +8 -2
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantization/quantizer.py +11 -4
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs.egg-info/PKG-INFO +1 -1
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/setup.py +1 -1
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/simple-knn/simple_knn.cu +1 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/LICENSE.md +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/README.md +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/importance/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/importance/trainer.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/prepare.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/pruning/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/pruning/trainer.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantization/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantization/abc.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantization/exclude_zeros.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantization/wrapper.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/quantize.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/shculling/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/shculling/gaussian_model.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/shculling/trainer.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs/train.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs.egg-info/SOURCES.txt +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs.egg-info/dependency_links.txt +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs.egg-info/requires.txt +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/reduced_3dgs.egg-info/top_level.txt +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/setup.cfg +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/ext.cpp +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/rasterize_points.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/reduced_3dgs/kmeans.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/reduced_3dgs/redundancy_score.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/reduced_3dgs/sh_culling.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/cuda_rasterizer/backward.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/cuda_rasterizer/forward.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/cuda_rasterizer/rasterizer_impl.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/diff_gaussian_rasterization/__init__.py +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/ext.cpp +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/rasterize_points.cu +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/simple-knn/ext.cpp +0 -0
- {reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/simple-knn/spatial.cu +0 -0
|
@@ -97,11 +97,17 @@ def BaseFullPrunerInDensifyTrainer(
|
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
def DepthFullPruningTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
100
|
-
return DepthTrainerWrapper(
|
|
100
|
+
return DepthTrainerWrapper(
|
|
101
|
+
BaseFullPruningTrainer,
|
|
102
|
+
model, scene_extent, dataset,
|
|
103
|
+
*args, **kwargs)
|
|
101
104
|
|
|
102
105
|
|
|
103
106
|
def DepthFullPrunerInDensifyTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
104
|
-
return DepthTrainerWrapper(
|
|
107
|
+
return DepthTrainerWrapper(
|
|
108
|
+
BaseFullPrunerInDensifyTrainer,
|
|
109
|
+
model, scene_extent, dataset,
|
|
110
|
+
*args, **kwargs)
|
|
105
111
|
|
|
106
112
|
|
|
107
113
|
def OpacityResetPruningTrainer(
|
|
@@ -52,11 +52,17 @@ def BaseImportancePrunerInDensifyTrainer(
|
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
def DepthImportancePruningTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
55
|
-
return DepthTrainerWrapper(
|
|
55
|
+
return DepthTrainerWrapper(
|
|
56
|
+
BaseImportancePruningTrainer,
|
|
57
|
+
model, scene_extent, dataset,
|
|
58
|
+
*args, **kwargs)
|
|
56
59
|
|
|
57
60
|
|
|
58
61
|
def DepthImportancePrunerInDensifyTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
59
|
-
return DepthTrainerWrapper(
|
|
62
|
+
return DepthTrainerWrapper(
|
|
63
|
+
BaseImportancePrunerInDensifyTrainer,
|
|
64
|
+
model, scene_extent, dataset,
|
|
65
|
+
*args, **kwargs)
|
|
60
66
|
|
|
61
67
|
|
|
62
68
|
ImportancePruningTrainer = DepthImportancePruningTrainer
|
|
@@ -54,11 +54,17 @@ def BasePrunerInDensifyTrainer(
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
def DepthPruningTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
57
|
-
return DepthTrainerWrapper(
|
|
57
|
+
return DepthTrainerWrapper(
|
|
58
|
+
BasePruningTrainer,
|
|
59
|
+
model, scene_extent, dataset,
|
|
60
|
+
*args, **kwargs)
|
|
58
61
|
|
|
59
62
|
|
|
60
63
|
def DepthPrunerInDensifyTrainer(model: GaussianModel, scene_extent: float, dataset: TrainableCameraDataset, *args, **kwargs):
|
|
61
|
-
return DepthTrainerWrapper(
|
|
64
|
+
return DepthTrainerWrapper(
|
|
65
|
+
BasePrunerInDensifyTrainer,
|
|
66
|
+
model, scene_extent, dataset,
|
|
67
|
+
*args, **kwargs)
|
|
62
68
|
|
|
63
69
|
|
|
64
70
|
PruningTrainer = DepthPruningTrainer
|
|
@@ -4,7 +4,15 @@ from typing import Dict, Tuple
|
|
|
4
4
|
import torch
|
|
5
5
|
import torch.nn as nn
|
|
6
6
|
import numpy as np
|
|
7
|
-
|
|
7
|
+
try:
|
|
8
|
+
from cuml.cluster import KMeans
|
|
9
|
+
kmeans_init = 'k-means||'
|
|
10
|
+
except ImportError:
|
|
11
|
+
print("Cuml not found, using sklearn's MiniBatchKMeans for quantization.")
|
|
12
|
+
from sklearn.cluster import MiniBatchKMeans
|
|
13
|
+
from functools import partial
|
|
14
|
+
KMeans = partial(MiniBatchKMeans, batch_size=256 * os.cpu_count())
|
|
15
|
+
kmeans_init = 'k-means++'
|
|
8
16
|
from gaussian_splatting import GaussianModel
|
|
9
17
|
from plyfile import PlyData, PlyElement
|
|
10
18
|
import numpy as np
|
|
@@ -65,9 +73,8 @@ class VectorQuantizer(AbstractQuantizer):
|
|
|
65
73
|
def generate_codebook(self, values: torch.Tensor, num_clusters, init_codebook=None):
|
|
66
74
|
kmeans = KMeans(
|
|
67
75
|
n_clusters=num_clusters, tol=self.tol, max_iter=self.max_iter,
|
|
68
|
-
init=
|
|
69
|
-
random_state=0, n_init="auto", verbose=
|
|
70
|
-
batch_size=256 * os.cpu_count()
|
|
76
|
+
init=kmeans_init if init_codebook is None else init_codebook.cpu().numpy(),
|
|
77
|
+
random_state=0, n_init="auto", verbose=1,
|
|
71
78
|
)
|
|
72
79
|
ids = torch.tensor(kmeans.fit_predict(values.cpu().numpy()), device=values.device)
|
|
73
80
|
centers = torch.tensor(kmeans.cluster_centers_, dtype=values.dtype, device=values.device)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/diff-gaussian-rasterization/reduced_3dgs.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{reduced_3dgs-1.10.4 → reduced_3dgs-1.10.6}/submodules/gaussian-importance/rasterize_points.cu
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|