From aaeb83dbdf10786d98909362f17e2b51c8a0197a Mon Sep 17 00:00:00 2001 From: Christine Simpson Date: Wed, 21 May 2025 14:35:26 -0500 Subject: [PATCH 1/2] changes to conv3d for transposed=True and generative=False --- torchsparse/nn/functional/conv/conv.py | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/torchsparse/nn/functional/conv/conv.py b/torchsparse/nn/functional/conv/conv.py index b8d4e13..3831d0a 100644 --- a/torchsparse/nn/functional/conv/conv.py +++ b/torchsparse/nn/functional/conv/conv.py @@ -135,6 +135,33 @@ def conv3d( (tensor_stride, kernel_size, stride, dilation) ) + + hashmap_keys, hashmap_vals = None, None + if kmap is None: + kmap = F.build_kernel_map( + coords, + feats.shape[0], + kernel_size, + stride, + padding, + hashmap_keys, + hashmap_vals, + input.spatial_range, + kmap_mode, + dataflow, + downsample_mode=config.downsample_mode, + training=training, + ifsort=config.ifsort, + split_mask_num=config.split_mask_num, + split_mask_num_bwd=config.split_mask_num_bwd, + ) + + hashmap = [kmap["hashmap_keys"], kmap["hashmap_vals"]] + + input._caches.kmaps[(input.stride, kernel_size, stride, dilation)] = kmap + input._caches.hashmaps[input.stride] = hashmap + + kmap = F.transpose_kernel_map( kmap, config.ifsort, @@ -153,6 +180,13 @@ def conv3d( if bias is not None: feats += bias + input._caches.cmaps[tensor_stride] = ( + kmap["coords"], + kmap.get("spatial_range"), + ) + print(f"{input._caches.cmaps=}") + print(f"{input._caches.cmaps.keys()=}") + print(f"{input=}") output = SparseTensor( coords=input._caches.cmaps[tensor_stride][0], feats=feats, From fcbbb015ffd9d047334139868f8e25310be8a011 Mon Sep 17 00:00:00 2001 From: Christine Simpson Date: Wed, 21 May 2025 14:42:35 -0500 Subject: [PATCH 2/2] removing print statements --- torchsparse/nn/functional/conv/conv.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/torchsparse/nn/functional/conv/conv.py b/torchsparse/nn/functional/conv/conv.py index 3831d0a..a4504b8 100644 --- a/torchsparse/nn/functional/conv/conv.py +++ b/torchsparse/nn/functional/conv/conv.py @@ -184,9 +184,7 @@ def conv3d( kmap["coords"], kmap.get("spatial_range"), ) - print(f"{input._caches.cmaps=}") - print(f"{input._caches.cmaps.keys()=}") - print(f"{input=}") + output = SparseTensor( coords=input._caches.cmaps[tensor_stride][0], feats=feats,