mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-07-31 10:52:50 +08:00
apply Black 2024 style in fbcode (4/16)
Summary: Formats the covered files with pyfmt. paintitblack Reviewed By: aleivag Differential Revision: D54447727 fbshipit-source-id: 8844b1caa08de94d04ac4df3c768dbf8c865fd2f
This commit is contained in:
parent
f34104cf6e
commit
3da7703c5a
@ -343,12 +343,14 @@ class RadianceFieldRenderer(torch.nn.Module):
|
||||
# For a full render pass concatenate the output chunks,
|
||||
# and reshape to image size.
|
||||
out = {
|
||||
k: torch.cat(
|
||||
[ch_o[k] for ch_o in chunk_outputs],
|
||||
dim=1,
|
||||
).view(-1, *self._image_size, 3)
|
||||
if chunk_outputs[0][k] is not None
|
||||
else None
|
||||
k: (
|
||||
torch.cat(
|
||||
[ch_o[k] for ch_o in chunk_outputs],
|
||||
dim=1,
|
||||
).view(-1, *self._image_size, 3)
|
||||
if chunk_outputs[0][k] is not None
|
||||
else None
|
||||
)
|
||||
for k in ("rgb_fine", "rgb_coarse", "rgb_gt")
|
||||
}
|
||||
else:
|
||||
|
@ -576,11 +576,11 @@ class GenericFrameDataBuilder(FrameDataBuilderBase[FrameDataSubtype], ABC):
|
||||
camera_quality_score=safe_as_tensor(
|
||||
sequence_annotation.viewpoint_quality_score, torch.float
|
||||
),
|
||||
point_cloud_quality_score=safe_as_tensor(
|
||||
point_cloud.quality_score, torch.float
|
||||
)
|
||||
if point_cloud is not None
|
||||
else None,
|
||||
point_cloud_quality_score=(
|
||||
safe_as_tensor(point_cloud.quality_score, torch.float)
|
||||
if point_cloud is not None
|
||||
else None
|
||||
),
|
||||
)
|
||||
|
||||
fg_mask_np: Optional[np.ndarray] = None
|
||||
|
@ -124,9 +124,9 @@ class JsonIndexDataset(DatasetBase, ReplaceableBase):
|
||||
dimension of the cropping bounding box, relative to box size.
|
||||
"""
|
||||
|
||||
frame_annotations_type: ClassVar[
|
||||
Type[types.FrameAnnotation]
|
||||
] = types.FrameAnnotation
|
||||
frame_annotations_type: ClassVar[Type[types.FrameAnnotation]] = (
|
||||
types.FrameAnnotation
|
||||
)
|
||||
|
||||
path_manager: Any = None
|
||||
frame_annotations_file: str = ""
|
||||
|
@ -88,9 +88,11 @@ def get_implicitron_sequence_pointcloud(
|
||||
frame_data.camera,
|
||||
frame_data.image_rgb,
|
||||
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
|
||||
else None,
|
||||
(
|
||||
(cast(torch.Tensor, frame_data.fg_probability) > 0.5).float()
|
||||
if mask_points and frame_data.fg_probability is not None
|
||||
else None
|
||||
),
|
||||
)
|
||||
|
||||
return point_cloud, frame_data
|
||||
|
@ -282,9 +282,9 @@ def eval_batch(
|
||||
image_rgb_masked=image_rgb_masked,
|
||||
depth_render=cloned_render["depth_render"],
|
||||
depth_map=frame_data.depth_map,
|
||||
depth_mask=frame_data.depth_mask[:1]
|
||||
if frame_data.depth_mask is not None
|
||||
else None,
|
||||
depth_mask=(
|
||||
frame_data.depth_mask[:1] if frame_data.depth_mask is not None else None
|
||||
),
|
||||
visdom_env=visualize_visdom_env,
|
||||
)
|
||||
|
||||
|
@ -395,9 +395,11 @@ class GenericModel(ImplicitronModelBase): # pyre-ignore: 13
|
||||
n_targets = (
|
||||
1
|
||||
if evaluation_mode == EvaluationMode.EVALUATION
|
||||
else batch_size
|
||||
if self.n_train_target_views <= 0
|
||||
else min(self.n_train_target_views, batch_size)
|
||||
else (
|
||||
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
|
||||
@ -422,9 +424,12 @@ class GenericModel(ImplicitronModelBase): # pyre-ignore: 13
|
||||
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
||||
target_cameras,
|
||||
evaluation_mode,
|
||||
mask=mask_crop[:n_targets]
|
||||
if mask_crop is not None and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||
else None,
|
||||
mask=(
|
||||
mask_crop[:n_targets]
|
||||
if mask_crop is not None
|
||||
and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||
else None
|
||||
),
|
||||
)
|
||||
|
||||
# custom_args hold additional arguments to the implicit function.
|
||||
|
@ -102,9 +102,7 @@ class IdrFeatureField(ImplicitFunctionBase, torch.nn.Module):
|
||||
elif self.n_harmonic_functions_xyz >= 0 and layer_idx == 0:
|
||||
torch.nn.init.constant_(lin.bias, 0.0)
|
||||
torch.nn.init.constant_(lin.weight[:, 3:], 0.0)
|
||||
torch.nn.init.normal_(
|
||||
lin.weight[:, :3], 0.0, 2**0.5 / out_dim**0.5
|
||||
)
|
||||
torch.nn.init.normal_(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:
|
||||
torch.nn.init.constant_(lin.bias, 0.0)
|
||||
torch.nn.init.normal_(lin.weight, 0.0, 2**0.5 / out_dim**0.5)
|
||||
|
@ -193,9 +193,9 @@ class NeuralRadianceFieldBase(ImplicitFunctionBase, torch.nn.Module):
|
||||
embeds = create_embeddings_for_implicit_function(
|
||||
xyz_world=rays_points_world,
|
||||
# for 2nd param but got `Union[None, torch.Tensor, torch.nn.Module]`.
|
||||
xyz_embedding_function=self.harmonic_embedding_xyz
|
||||
if self.input_xyz
|
||||
else None,
|
||||
xyz_embedding_function=(
|
||||
self.harmonic_embedding_xyz if self.input_xyz else None
|
||||
),
|
||||
global_code=global_code,
|
||||
fun_viewpool=fun_viewpool,
|
||||
xyz_in_camera_coords=self.xyz_ray_dir_in_camera_coords,
|
||||
|
@ -356,9 +356,12 @@ class OverfitModel(ImplicitronModelBase): # pyre-ignore: 13
|
||||
ray_bundle: ImplicitronRayBundle = self.raysampler(
|
||||
camera,
|
||||
evaluation_mode,
|
||||
mask=mask_crop
|
||||
if mask_crop is not None and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||
else None,
|
||||
mask=(
|
||||
mask_crop
|
||||
if mask_crop is not None
|
||||
and sampling_mode == RenderSamplingMode.MASK_SAMPLE
|
||||
else None
|
||||
),
|
||||
)
|
||||
|
||||
inputs_to_be_chunked = {}
|
||||
@ -381,10 +384,12 @@ class OverfitModel(ImplicitronModelBase): # pyre-ignore: 13
|
||||
frame_timestamp=frame_timestamp,
|
||||
)
|
||||
implicit_functions = [
|
||||
functools.partial(implicit_function, global_code=global_code)
|
||||
if isinstance(implicit_function, Callable)
|
||||
else functools.partial(
|
||||
implicit_function.forward, global_code=global_code
|
||||
(
|
||||
functools.partial(implicit_function, global_code=global_code)
|
||||
if isinstance(implicit_function, Callable)
|
||||
else functools.partial(
|
||||
implicit_function.forward, global_code=global_code
|
||||
)
|
||||
)
|
||||
for implicit_function in implicit_functions
|
||||
]
|
||||
|
@ -145,10 +145,12 @@ class AbstractMaskRaySampler(RaySamplerBase, torch.nn.Module):
|
||||
n_pts_per_ray=n_pts_per_ray_training,
|
||||
min_depth=0.0,
|
||||
max_depth=0.0,
|
||||
n_rays_per_image=self.n_rays_per_image_sampled_from_mask
|
||||
if self._sampling_mode[EvaluationMode.TRAINING]
|
||||
== RenderSamplingMode.MASK_SAMPLE
|
||||
else None,
|
||||
n_rays_per_image=(
|
||||
self.n_rays_per_image_sampled_from_mask
|
||||
if self._sampling_mode[EvaluationMode.TRAINING]
|
||||
== RenderSamplingMode.MASK_SAMPLE
|
||||
else None
|
||||
),
|
||||
n_rays_total=self.n_rays_total_training,
|
||||
unit_directions=True,
|
||||
stratified_sampling=self.stratified_point_sampling_training,
|
||||
@ -160,10 +162,12 @@ class AbstractMaskRaySampler(RaySamplerBase, torch.nn.Module):
|
||||
n_pts_per_ray=n_pts_per_ray_evaluation,
|
||||
min_depth=0.0,
|
||||
max_depth=0.0,
|
||||
n_rays_per_image=self.n_rays_per_image_sampled_from_mask
|
||||
if self._sampling_mode[EvaluationMode.EVALUATION]
|
||||
== RenderSamplingMode.MASK_SAMPLE
|
||||
else None,
|
||||
n_rays_per_image=(
|
||||
self.n_rays_per_image_sampled_from_mask
|
||||
if self._sampling_mode[EvaluationMode.EVALUATION]
|
||||
== RenderSamplingMode.MASK_SAMPLE
|
||||
else None
|
||||
),
|
||||
unit_directions=True,
|
||||
stratified_sampling=self.stratified_point_sampling_evaluation,
|
||||
)
|
||||
|
@ -415,7 +415,7 @@ class RayTracing(Configurable, nn.Module):
|
||||
]
|
||||
sampler_dists[mask_intersect_idx[p_out_mask]] = pts_intervals[
|
||||
p_out_mask,
|
||||
:
|
||||
:,
|
||||
# pyre-fixme[6]: For 1st param expected `Union[bool, float, int]` but
|
||||
# got `Tensor`.
|
||||
][torch.arange(n_p_out), out_pts_idx]
|
||||
|
@ -43,9 +43,9 @@ class SignedDistanceFunctionRenderer(BaseRenderer, torch.nn.Module): # pyre-ign
|
||||
|
||||
run_auto_creation(self)
|
||||
|
||||
self.ray_normal_coloring_network_args[
|
||||
"feature_vector_size"
|
||||
] = render_features_dimensions
|
||||
self.ray_normal_coloring_network_args["feature_vector_size"] = (
|
||||
render_features_dimensions
|
||||
)
|
||||
self._rgb_network = RayNormalColoringNetwork(
|
||||
**self.ray_normal_coloring_network_args
|
||||
)
|
||||
@ -201,15 +201,15 @@ class SignedDistanceFunctionRenderer(BaseRenderer, torch.nn.Module): # pyre-ign
|
||||
None, :, 0, :
|
||||
]
|
||||
normals_full.view(-1, 3)[surface_mask] = normals
|
||||
render_full.view(-1, self.render_features_dimensions)[
|
||||
surface_mask
|
||||
] = self._rgb_network(
|
||||
features,
|
||||
differentiable_surface_points[None],
|
||||
normals,
|
||||
ray_bundle,
|
||||
surface_mask[None, :, None],
|
||||
pooling_fn=None, # TODO
|
||||
render_full.view(-1, self.render_features_dimensions)[surface_mask] = (
|
||||
self._rgb_network(
|
||||
features,
|
||||
differentiable_surface_points[None],
|
||||
normals,
|
||||
ray_bundle,
|
||||
surface_mask[None, :, None],
|
||||
pooling_fn=None, # TODO
|
||||
)
|
||||
)
|
||||
mask_full.view(-1, 1)[~surface_mask] = torch.sigmoid(
|
||||
# pyre-fixme[6]: For 1st param expected `Tensor` but got `float`.
|
||||
|
@ -241,9 +241,9 @@ class _Registry:
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._mapping: Dict[
|
||||
Type[ReplaceableBase], Dict[str, Type[ReplaceableBase]]
|
||||
] = defaultdict(dict)
|
||||
self._mapping: Dict[Type[ReplaceableBase], Dict[str, Type[ReplaceableBase]]] = (
|
||||
defaultdict(dict)
|
||||
)
|
||||
|
||||
def register(self, some_class: Type[_X]) -> Type[_X]:
|
||||
"""
|
||||
|
@ -139,9 +139,11 @@ def generate_eval_video_cameras(
|
||||
fit = fit_circle_in_3d(
|
||||
cam_centers,
|
||||
angles=angle,
|
||||
offset=angle.new_tensor(traj_offset_canonical)
|
||||
if traj_offset_canonical is not None
|
||||
else None,
|
||||
offset=(
|
||||
angle.new_tensor(traj_offset_canonical)
|
||||
if traj_offset_canonical is not None
|
||||
else None
|
||||
),
|
||||
up=angle.new_tensor(up),
|
||||
)
|
||||
traj = fit.generated_points
|
||||
|
@ -146,9 +146,11 @@ def cat_dataclass(batch, tensor_collator: Callable):
|
||||
)
|
||||
elif isinstance(elem_f, collections.abc.Mapping):
|
||||
collated[f.name] = {
|
||||
k: tensor_collator([getattr(e, f.name)[k] for e in batch])
|
||||
if elem_f[k] is not None
|
||||
else None
|
||||
k: (
|
||||
tensor_collator([getattr(e, f.name)[k] for e in batch])
|
||||
if elem_f[k] is not None
|
||||
else None
|
||||
)
|
||||
for k in elem_f
|
||||
}
|
||||
else:
|
||||
|
@ -81,7 +81,6 @@ class FishEyeCameras(CamerasBase):
|
||||
device: Device = "cpu",
|
||||
image_size: Optional[Union[List, Tuple, torch.Tensor]] = None,
|
||||
) -> None:
|
||||
|
||||
"""
|
||||
|
||||
Args:
|
||||
|
@ -712,9 +712,9 @@ def convert_clipped_rasterization_to_original_faces(
|
||||
)
|
||||
|
||||
bary_coords_unclipped_subset = bary_coords_unclipped_subset.reshape([N * 3])
|
||||
bary_coords_unclipped[
|
||||
faces_to_convert_mask_expanded
|
||||
] = bary_coords_unclipped_subset
|
||||
bary_coords_unclipped[faces_to_convert_mask_expanded] = (
|
||||
bary_coords_unclipped_subset
|
||||
)
|
||||
|
||||
# dists for case 4 faces will be handled in the rasterizer
|
||||
# so no need to modify them here.
|
||||
|
@ -605,7 +605,10 @@ def rasterize_meshes_python( # noqa: C901
|
||||
# If faces were clipped, map the rasterization result to be in terms of the
|
||||
# original unclipped faces. This may involve converting barycentric
|
||||
# coordinates
|
||||
(face_idxs, bary_coords,) = convert_clipped_rasterization_to_original_faces(
|
||||
(
|
||||
face_idxs,
|
||||
bary_coords,
|
||||
) = convert_clipped_rasterization_to_original_faces(
|
||||
face_idxs,
|
||||
bary_coords,
|
||||
# pyre-fixme[61]: `clipped_faces` may not be initialized here.
|
||||
|
@ -4,6 +4,7 @@
|
||||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
|
||||
# If we can access EGL, import MeshRasterizerOpenGL.
|
||||
def _can_import_egl_and_pycuda():
|
||||
import os
|
||||
|
@ -292,9 +292,11 @@ class _OpenGLMachinery:
|
||||
pix_to_face, bary_coord, zbuf = self._rasterize_mesh(
|
||||
mesh,
|
||||
image_size,
|
||||
projection_matrix=projection_matrix[mesh_id]
|
||||
if projection_matrix.shape[0] > 1
|
||||
else None,
|
||||
projection_matrix=(
|
||||
projection_matrix[mesh_id]
|
||||
if projection_matrix.shape[0] > 1
|
||||
else None
|
||||
),
|
||||
)
|
||||
pix_to_faces.append(pix_to_face)
|
||||
bary_coords.append(bary_coord)
|
||||
|
@ -61,9 +61,9 @@ class ExtendedSqlFrameAnnotation(SqlFrameAnnotation):
|
||||
|
||||
|
||||
class ExtendedSqlIndexDataset(SqlIndexDataset):
|
||||
frame_annotations_type: ClassVar[
|
||||
Type[SqlFrameAnnotation]
|
||||
] = ExtendedSqlFrameAnnotation
|
||||
frame_annotations_type: ClassVar[Type[SqlFrameAnnotation]] = (
|
||||
ExtendedSqlFrameAnnotation
|
||||
)
|
||||
|
||||
|
||||
class CanineFrameData(FrameData):
|
||||
@ -96,9 +96,9 @@ class CanineFrameDataBuilder(
|
||||
|
||||
|
||||
class CanineSqlIndexDataset(SqlIndexDataset):
|
||||
frame_annotations_type: ClassVar[
|
||||
Type[SqlFrameAnnotation]
|
||||
] = ExtendedSqlFrameAnnotation
|
||||
frame_annotations_type: ClassVar[Type[SqlFrameAnnotation]] = (
|
||||
ExtendedSqlFrameAnnotation
|
||||
)
|
||||
|
||||
frame_data_builder_class_type: str = "CanineFrameDataBuilder"
|
||||
|
||||
|
@ -85,11 +85,11 @@ class TestFrameDataBuilder(TestCaseMixin, unittest.TestCase):
|
||||
camera_quality_score=safe_as_tensor(
|
||||
self.seq_annotation.viewpoint_quality_score, torch.float
|
||||
),
|
||||
point_cloud_quality_score=safe_as_tensor(
|
||||
point_cloud.quality_score, torch.float
|
||||
)
|
||||
if point_cloud is not None
|
||||
else None,
|
||||
point_cloud_quality_score=(
|
||||
safe_as_tensor(point_cloud.quality_score, torch.float)
|
||||
if point_cloud is not None
|
||||
else None
|
||||
),
|
||||
)
|
||||
|
||||
def test_frame_data_builder_args(self):
|
||||
|
@ -168,7 +168,10 @@ def _make_random_json_dataset_map_provider_v2_data(
|
||||
mask_path = os.path.join(maskdir, f"frame{i:05d}.png")
|
||||
mask = np.zeros((H, W))
|
||||
mask[H // 2 :, W // 2 :] = 1
|
||||
Image.fromarray((mask * 255.0).astype(np.uint8), mode="L",).convert(
|
||||
Image.fromarray(
|
||||
(mask * 255.0).astype(np.uint8),
|
||||
mode="L",
|
||||
).convert(
|
||||
"L"
|
||||
).save(mask_path)
|
||||
|
||||
|
@ -222,10 +222,7 @@ class TestRendererBase(TestCaseMixin, unittest.TestCase):
|
||||
np.testing.assert_allclose(
|
||||
(delta**2) / 3
|
||||
- (4 / 15)
|
||||
* (
|
||||
(delta**4 * (12 * mu**2 - delta**2))
|
||||
/ (3 * mu**2 + delta**2) ** 2
|
||||
),
|
||||
* ((delta**4 * (12 * mu**2 - delta**2)) / (3 * mu**2 + delta**2) ** 2),
|
||||
t_var.numpy(),
|
||||
)
|
||||
np.testing.assert_allclose(
|
||||
|
@ -983,7 +983,7 @@ class TestMeshes(TestCaseMixin, unittest.TestCase):
|
||||
verts_list = []
|
||||
faces_list = []
|
||||
verts_faces = [(10, 100), (20, 200)]
|
||||
for (V, F) in verts_faces:
|
||||
for V, F in verts_faces:
|
||||
verts = torch.rand((V, 3), dtype=torch.float32, device=device)
|
||||
faces = torch.randint(V, size=(F, 3), dtype=torch.int64, device=device)
|
||||
verts_list.append(verts)
|
||||
@ -1007,7 +1007,7 @@ class TestMeshes(TestCaseMixin, unittest.TestCase):
|
||||
device = torch.device("cuda:0")
|
||||
verts_list = []
|
||||
faces_list = []
|
||||
for (V, F) in [(10, 100)]:
|
||||
for V, F in [(10, 100)]:
|
||||
verts = torch.rand((V, 3), dtype=torch.float32, device=device)
|
||||
faces = torch.randint(V, size=(F, 3), dtype=torch.int64, device=device)
|
||||
verts_list.append(verts)
|
||||
@ -1025,7 +1025,7 @@ class TestMeshes(TestCaseMixin, unittest.TestCase):
|
||||
verts_list = []
|
||||
faces_list = []
|
||||
verts_faces = [(10, 100), (20, 200), (30, 300)]
|
||||
for (V, F) in verts_faces:
|
||||
for V, F in verts_faces:
|
||||
verts = torch.rand((V, 3), dtype=torch.float32, device=device)
|
||||
faces = torch.randint(V, size=(F, 3), dtype=torch.int64, device=device)
|
||||
verts_list.append(verts)
|
||||
@ -1047,7 +1047,7 @@ class TestMeshes(TestCaseMixin, unittest.TestCase):
|
||||
verts_list = []
|
||||
faces_list = []
|
||||
verts_faces = [(10, 100), (20, 200), (30, 300)]
|
||||
for (V, F) in verts_faces:
|
||||
for V, F in verts_faces:
|
||||
verts = torch.rand((V, 3), dtype=torch.float32, device=device)
|
||||
faces = torch.randint(V, size=(F, 3), dtype=torch.int64, device=device)
|
||||
verts_list.append(verts)
|
||||
|
@ -284,7 +284,7 @@ class TestRenderImplicit(TestCaseMixin, unittest.TestCase):
|
||||
os.makedirs(outdir, exist_ok=True)
|
||||
|
||||
frames = []
|
||||
for (image_opacity, image_opacity_mesh) in zip(
|
||||
for image_opacity, image_opacity_mesh in zip(
|
||||
images_opacities, images_opacities_meshes
|
||||
):
|
||||
image, opacity = image_opacity.split([3, 1], dim=-1)
|
||||
|
@ -303,7 +303,6 @@ class TestRenderMeshes(TestCaseMixin, unittest.TestCase):
|
||||
self.test_simple_sphere(check_depth=True)
|
||||
|
||||
def test_simple_sphere_screen(self):
|
||||
|
||||
"""
|
||||
Test output when rendering with PerspectiveCameras & OrthographicCameras
|
||||
in NDC vs screen space.
|
||||
@ -1221,7 +1220,7 @@ class TestRenderMeshes(TestCaseMixin, unittest.TestCase):
|
||||
"flat": HardFlatShader,
|
||||
"splatter": SplatterPhongShader,
|
||||
}
|
||||
for (name, shader_init) in shaders.items():
|
||||
for name, shader_init in shaders.items():
|
||||
if rasterizer_type == MeshRasterizerOpenGL and name != "splatter":
|
||||
continue
|
||||
if rasterizer_type == MeshRasterizer and name == "splatter":
|
||||
|
@ -620,7 +620,7 @@ class TestRenderMeshesClipping(TestCaseMixin, unittest.TestCase):
|
||||
plane into a quadrilateral, there shouldn't be duplicates indices of
|
||||
the face in the pix_to_face output of rasterization.
|
||||
"""
|
||||
for (device, bin_size) in [("cpu", 0), ("cuda:0", 0), ("cuda:0", None)]:
|
||||
for device, bin_size in [("cpu", 0), ("cuda:0", 0), ("cuda:0", None)]:
|
||||
verts = torch.tensor(
|
||||
[[0.0, -10.0, 1.0], [-1.0, 2.0, -2.0], [1.0, 5.0, -10.0]],
|
||||
dtype=torch.float32,
|
||||
@ -673,7 +673,7 @@ class TestRenderMeshesClipping(TestCaseMixin, unittest.TestCase):
|
||||
device = "cuda:0"
|
||||
mesh1 = torus(20.0, 85.0, 32, 16, device=device)
|
||||
mesh2 = torus(2.0, 3.0, 32, 16, device=device)
|
||||
for (mesh, z_clip) in [(mesh1, None), (mesh2, 5.0)]:
|
||||
for mesh, z_clip in [(mesh1, None), (mesh2, 5.0)]:
|
||||
tex = TexturesVertex(verts_features=torch.rand_like(mesh.verts_padded()))
|
||||
mesh.textures = tex
|
||||
raster_settings = RasterizationSettings(
|
||||
|
@ -384,7 +384,7 @@ class TestRenderPoints(TestCaseMixin, unittest.TestCase):
|
||||
(AlphaCompositor, alpha_composite),
|
||||
]
|
||||
|
||||
for (compositor_class, composite_func) in compositor_funcs:
|
||||
for compositor_class, composite_func in compositor_funcs:
|
||||
|
||||
compositor = compositor_class(background_color)
|
||||
|
||||
@ -435,7 +435,7 @@ class TestRenderPoints(TestCaseMixin, unittest.TestCase):
|
||||
(AlphaCompositor, alpha_composite),
|
||||
]
|
||||
|
||||
for (compositor_class, composite_func) in compositor_funcs:
|
||||
for compositor_class, composite_func in compositor_funcs:
|
||||
|
||||
compositor = compositor_class(background_color)
|
||||
|
||||
|
@ -392,7 +392,7 @@ class TestRenderVolumes(TestCaseMixin, unittest.TestCase):
|
||||
os.makedirs(outdir, exist_ok=True)
|
||||
|
||||
frames = []
|
||||
for (image, image_pts) in zip(images, images_pts):
|
||||
for image, image_pts in zip(images, images_pts):
|
||||
diff_image = (
|
||||
((image - image_pts) * 0.5 + 0.5)
|
||||
.mean(dim=2, keepdim=True)
|
||||
|
@ -100,7 +100,7 @@ class TestVertAlign(TestCaseMixin, unittest.TestCase):
|
||||
def init_feats(batch_size: int = 10, num_channels: int = 256, device: str = "cuda"):
|
||||
H, W = [14, 28], [14, 28]
|
||||
feats = []
|
||||
for (h, w) in zip(H, W):
|
||||
for h, w in zip(H, W):
|
||||
feats.append(torch.rand((batch_size, num_channels, h, w), device=device))
|
||||
return feats
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user