Closed Avril-Dragon closed 1 month ago
It seems self[low + 1].sub
is a List(Cluster)
instead of simply being a Cluster
. This is the first time I see this issue, I am not sure how it appeared yet. Have you made any modification to the code, even minor ? Can you please share the exact bash command are you running ?
In order to ensure that I did not make any modifications, I re -decompressed the ZIP, and only pressed the data set in. When running, I often encounter PIPE LINE ERROR because of insufficient memory, but after re -execution, I successfully generated S3DIS data, and then I encountered the above error. by the way,i find the WARN in Processing if any problems in my method?
I have the same problem when training on DALES dataset without any modification to the code. The only difference is that I ran on python venv instead of conda environment (but I don't think it really matters). Here the logs I've got:
and when I print self[low + 1].sub
, the output is: [Cluster(num_clusters=42880, num_points=1324840, device=cuda:0), Cluster(num_clusters=35140, num_points=1080737, device=cuda:0), Cluster(num_clusters=30092, num_points=959261, device=cuda:0), Cluster(num_clusters=36576, num_points=1147082, device=cuda:0)]
I guest the issue lies in the process of packing data into batchs. In my case, the batch_size
was 4 resulted a batch of 4 Clusters but in the type of List, and then the whole List was pushed into the transformation progress instead of a single Cluster, which maybe the reason of this problem.
I have solved this issue by editting the line 933 of src/data/data.py, deleting and isinstance(batch.sub, Cluster)
will work. After checked the previous version of this file, I've found that isinstance(batch.sub, Cluster)
will always return False
in this condition so the batch will be stuck in List
data type instead of being convert to ClusterBatch
.
it works! Thanks!
Good catch @va-kiet ! There was indeed an error there, since the PyG behavior of Batch.from_data_list()
would return a List(Cluster)
by default. Your fix was the correct one, I integrated this in the latest commit.
I print the related param in nag.py like:
Thanks all the help you provide