dk-liang / TransCrowd

[SCIS] TransCrowd: Weakly-Supervised Crowd Counting with Transformers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

想要复现时在训练模型阶段发生报错

xklll opened this issue · comments

commented

您好,最近想复现您的代码时候,根据readme中的指示,在train阶段发生报错,具体表现为:
RuntimeError: stack expects each tensor to be equal size, but got [3, 384, 384] at entry 0 and [3, 768, 1152] at entry 1
尝试用transformer.Resize(384,384)解决无果,遂来询问。望解答

你好,能否提供详细的截图

commented
commented
commented

您好,翻看论文时发现,您在预处理数据的时候将每个图片分为了6个384*384的crop,但是在predataset的py文件里,您将这些crop和原本的图像保存在一个文件当中,后续进行训练。在这个基础上,猜测是否是这样导致了在训练阶段的tesnsor不一致

您好,翻看论文时发现,您在预处理数据的时候将每个图片分为了6个384*384的crop,但是在predataset的py文件里,您将这些crop和原本的图像保存在一个文件当中,后续进行训练。在这个基础上,猜测是否是这样导致了在训练阶段的tesnsor不一致

应该是的,你可以print看下输入到model中的image,必须是384 x 384才可以

解决了,发现是由于predataset.py里的split()函数导致的,因为路径跟作者不同,所以每个split()[]函数要修改下参数,确保得出的名字是正确形式,然后检查下几个crop文件夹里的是不是都是384*384格式的图片。不是的话,直接删掉crop文件夹,再运行下predataset.py

请问具体的参数怎么修改?

if root_path.split('/')[3] == 'train_data': 这段代码,就是判断是不是train_data,需要修改前面的。split得到list的按序索引的参数。