mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-08-02 03:42:50 +08:00
Fix camera clone() with torch.save
Summary: User reported that cloned cameras fail to save. The error with latest PyTorch is ``` pickle.PicklingError: Can't pickle ~T_destination: attribute lookup T_destination on torch.nn.modules.module failed ``` This fixes it. Reviewed By: btgraham Differential Revision: D39692258 fbshipit-source-id: 75bbf3b8dfa0023dc28bf7d4cc253ca96e46a64d
This commit is contained in:
parent
ce3fce49d7
commit
efea540bbc
@ -8,7 +8,7 @@
|
||||
import copy
|
||||
import inspect
|
||||
import warnings
|
||||
from typing import Any, List, Optional, Tuple, Union
|
||||
from typing import Any, List, Optional, Tuple, TypeVar, Union
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
@ -191,7 +191,7 @@ class TensorProperties(nn.Module):
|
||||
"""
|
||||
for k in dir(self):
|
||||
v = getattr(self, k)
|
||||
if inspect.ismethod(v) or k.startswith("__"):
|
||||
if inspect.ismethod(v) or k.startswith("__") or type(v) is TypeVar:
|
||||
continue
|
||||
if torch.is_tensor(v):
|
||||
v_clone = v.clone()
|
||||
|
@ -31,6 +31,7 @@
|
||||
# SOFTWARE.
|
||||
|
||||
import math
|
||||
import pickle
|
||||
import typing
|
||||
import unittest
|
||||
from itertools import product
|
||||
@ -1333,6 +1334,11 @@ class TestPerspectiveProjection(TestCaseMixin, unittest.TestCase):
|
||||
# Check in_ndc is handled correctly
|
||||
self.assertEqual(cam._in_ndc, c0._in_ndc)
|
||||
|
||||
def test_clone_picklable(self):
|
||||
camera = PerspectiveCameras()
|
||||
pickle.dumps(camera)
|
||||
pickle.dumps(camera.clone())
|
||||
|
||||
|
||||
############################################################
|
||||
# FishEye Camera #
|
||||
|
Loading…
x
Reference in New Issue
Block a user