Hzzone / PseCo

(CVPR 2024) Point, Segment and Count: A Generalized Framework for Object Counting
89 stars 7 forks source link

Sizes of tensors mismatch #13

Closed lichen14 closed 4 months ago

lichen14 commented 4 months ago

https://github.com/Hzzone/PseCo/blob/0192ee521cd3786ed5f2d89231fd74567ef87d9c/fsc147/4_1_train_roi_head.py#L277C53-L277C67

我在这一步时报了个错“Sizes of tensors must match except in dimension 0. Expected size 3 but got size 4 for tensor number 5120 in the list.” 去查bug的原因是: https://github.com/Hzzone/PseCo/blob/0192ee521cd3786ed5f2d89231fd74567ef87d9c/models.py#L24 这一步会对传入的query_features列表进行cat,但是query_features的维度不一样 继续的,我发现这个query_features来自在 https://github.com/Hzzone/PseCo/blob/0192ee521cd3786ed5f2d89231fd74567ef87d9c/fsc147/1_generate_data.ipynb 中: all_data[fname]['example_clip_features'] = extract_clip_features(fname, boxes.reshape(-1, 4)).view(-1, boxes.size(0), 512)。 不同的frame就具有不同维度的boxes.size,大部分都是(1,3,512),但是部分frame是(1,4,512),这个差异来自all_data = json.load(open(f'{project_root}/data/fsc147/annotation_FSC147_384_with_gt.json')),这个给定的json文件中不同image就有不同数量的提示框'box_examples_coordinates',大部分是3个,个别有4个(例如"72.jpg")。这个数量差异导致了开头提到的bug。

因此,想请教作者,该如何解决这个bug?我直接跑few shot的时候暂时无法避开这个bug 能否给一个你最后能跑通的代码呀? 谢谢

lichen14 commented 4 months ago

??请回复一下呢?你是只取了前3个box_examples_coordinates吗?还是具体怎么操作的呢? 谢谢