我在这一步时报了个错“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。
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 能否给一个你最后能跑通的代码呀? 谢谢