Comments (3)
Would you please specify which test did it fail? This is a known issue to stdgpu with a large amount of negative values and I have a plan to investigate it. But it should have at least passed the test though...
from torch-ash.
Thanks for your reply. I post the complete test log below for your reference.
platform linux -- Python 3.8.17, pytest-7.4.0, pluggy-1.2.0
rootdir: /home/administrator/Documents/torch-ash
plugins: torchtyping-0.1.4, dash-2.11.1, typeguard-4.0.0, anyio-3.7.1
collected 27 items
unittests/test_embedding.py .... [ 14%]
unittests/test_engine.py ....... [ 40%]
unittests/test_hashmap.py ..... [ 59%]
unittests/test_hashset.py ..F. [ 74%]
unittests/test_sparsedense_grid.py .....F. [100%]
=============================================================================================================================================== FAILURES ================================================================================================================================================
________________________________________________________________________________________________________________________________________ TestHashSet.test_resize ________________________________________________________________________________________________________________________________________
self = <unittests.test_hashset.TestHashSet object at 0x7f5a09c9c0a0>
def test_resize(self):
self._resize_block(1, 100, 100, 1000)
self._resize_block(1, 1000, 1000, 10000)
unittests/test_hashset.py:95:
self = <unittests.test_hashset.TestHashSet object at 0x7f5a09c9c0a0>, dim = 1, num = 1000, old_capacity = 1000, new_capacity = 10000
def _resize_block(self, dim, num, old_capacity, new_capacity):
hashset = HashSet(dim, old_capacity, self.device)
keys = self._generate_keys(dim, num)
hashset.insert(keys)
hashset.resize(new_capacity)
masks = hashset.find(keys)
assert masks.sum() == num
E AssertionError: assert tensor(996, device='cuda:0') == 1000
E + where tensor(996, device='cuda:0') = <built-in method sum of Tensor object at 0x7f5a09c84db0>()
E + where <built-in method sum of Tensor object at 0x7f5a09c84db0> = tensor([ True, True, True, True, True, True, True, True, True, True,\n True, True, True, True, Tru...e, True, True,\n True, True, True, True, True, True, True, True, True, True],\n device='cuda:0').sum
unittests/test_hashset.py:52: AssertionError
----------------------------------------------------------------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------------------------------------------------------------
[c++] insert_keys 100
[c++] insert_keys 100
[c++] insert_keys 1000
stdgpu::vector::pop_back : Index out of bounds: -1 not in [0, 414]
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
stdgpu::vector::pop_back : Object empty
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
stdgpu::vector::pop_back : Object empty
unordered_base::try_insert : Associated bucket and excess list full
stdgpu::vector::size : Size out of bounds: -1 not in [0, 415]. Clamping to 0
[c++] insert_keys 996
___________________________________________________________________________________________________________________________________ TestSparseDenseGrid.test_forward ____________________________________________________________________________________________________________________________________
self = <unittests.test_sparsedense_grid.TestSparseDenseGrid object at 0x7f5a09c9ce80>
def test_forward(self):
self._forward_block(in_dim=3, embedding_dim=3, grid_dim=1)
unittests/test_sparsedense_grid.py:379:
self = <unittests.test_sparsedense_grid.TestSparseDenseGrid object at 0x7f5a09c9ce80>, in_dim = 3, embedding_dim = 3, grid_dim = 1, bound = 3
def _forward_block(self, in_dim, embedding_dim, grid_dim, bound=3):
grid = SparseDenseGrid(
in_dim=in_dim,
num_embeddings=self.capacity,
embedding_dim=embedding_dim,
grid_dim=grid_dim,
device=self.device,
)
grid_coord_range = torch.arange(
-bound, bound + 1, 1, dtype=torch.int, device=self.device
)
# Create a dense grid to test correctness
grid_coords = grid_dim * torch.stack(
torch.meshgrid(
grid_coord_range, grid_coord_range, grid_coord_range, indexing="ij"
),
dim=-1,
).view(-1, 3)
grid.spatial_init_(grid_coords, dilation=0)
grid_coords, cell_coords, grid_indices, cell_indices = grid.items()
coords = grid_coords * grid_dim + cell_coords
coords = coords.view(-1, in_dim).float()
with torch.no_grad():
grid.embeddings[grid_indices, cell_indices, :3] = coords.view(
grid_indices.shape[0], cell_indices.shape[1], 3
)
# Map query to [min, max - 1) to check purely in-bound queries
num_queries = 1000
query_cell_coords = torch.rand(num_queries, in_dim, device=self.device)
# min: -grid_dim * bound
# max: grid_dim * bound - 1
query_cell_coords = (
2 * grid_dim * bound - 1
) * query_cell_coords - grid_dim * bound
embeddings, masks = grid(query_cell_coords, interpolation="linear")
assert torch.allclose(embeddings[..., :3], query_cell_coords)
E AssertionError: assert False
E + where False = <built-in method allclose of type object at 0x7f5a9a7311c0>(tensor([[ 1.0372, -0.0440, 0.1211],\n [ 0.0000, 0.0000, 0.0000],\n [ 0.0000, 0.0000, 0.0000],\n ... [ 0.0000, 0.0000, 0.0000],\n [ 0.0000, 0.0000, 0.0000]], device='cuda:0',\n grad_fn=), tensor([[ 1.0372, -0.0440, 0.1211],\n [ 1.9756, 0.9248, 1.6209],\n [ 1.5990, -2.0546, -2.2807],\n ...-0.2605, -1.4161, 0.9210],\n [-1.8164, -2.4182, 0.5889],\n [-0.1101, -0.8764, -2.6821]], device='cuda:0'))
E + where <built-in method allclose of type object at 0x7f5a9a7311c0> = torch.allclose
unittests/test_sparsedense_grid.py:180: AssertionError
----------------------------------------------------------------------------------------------------------------------------------------- Captured stdout call ------------------------------------------------------------------------------------------------------------------------------------------
[c++] insert_keys 343
stdgpu::vector::pop_back : Index out of bounds: -1 not in [0, 110]
stdgpu::vector::pop_back : Index out of bounds: -2 not in [0, 110]
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
stdgpu::vector::pop_back : Object empty
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
unordered_base::try_insert : Associated bucket and excess list full
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
stdgpu::vector::size : Size out of bounds: -2 not in [0, 111]. Clamping to 0
[c++] insert_keys 255
=========================================================================================================================================== warnings summary ============================================================================================================================================
../../anaconda3/envs/sdfstudio/lib/python3.8/site-packages/torch/nn/modules/module.py:1365
unittests/test_embedding.py::TestEmbedding::test_backward
unittests/test_engine.py::TestEngine::test_state_dict
unittests/test_hashmap.py::TestMap::test_state_dict
/home/administrator/anaconda3/envs/sdfstudio/lib/python3.8/site-packages/torch/nn/modules/module.py:1365: UserWarning: Positional args are being deprecated, use kwargs instead. Refer to https://pytorch.org/docs/master/generated/torch.nn.Module.html#torch.nn.Module.state_dict for details.
warnings.warn(
unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_items
unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_query
unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_forward
unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_backward
/home/administrator/Documents/torch-ash/ash/core.py:145: UserWarning: keys are not int32, conversion might reduce precision.
warnings.warn("keys are not int32, conversion might reduce precision.")
unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_backward
/home/administrator/anaconda3/envs/sdfstudio/lib/python3.8/site-packages/torch/autograd/gradcheck.py:652: UserWarning: Input #0 requires gradient and is not a double precision floating point or complex. This check will likely fail if all the inputs are not of double precision floating point or complex.
warnings.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
======================================================================================================================================== short test summary info ========================================================================================================================================
FAILED unittests/test_hashset.py::TestHashSet::test_resize - AssertionError: assert tensor(996, device='cuda:0') == 1000
FAILED unittests/test_sparsedense_grid.py::TestSparseDenseGrid::test_forward - AssertionError: assert False
=============================================================================================================================== 2 failed, 25 passed, 9 warnings in 43.19s ===============================================================================================================================
from torch-ash.
Thanks, this is very helpful. I will try to identify the problem.
from torch-ash.
Related Issues (10)
- Release of evaluation groundtruth mesh HOT 6
- AssertionError: inputs must be flattened HOT 2
- How to compute the scale of omnidata depth? HOT 15
- Image quality by rendering HOT 3
- Does it support outdoor scenes? HOT 1
- what is the coordinate system? HOT 3
- RuntimeError: CUDA error: invalid configuration argument HOT 2
- Does it support onlineTsdf fusion? HOT 10
- Instructions for custom dataset
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from torch-ash.