zugexiaodui / torch_flops

A library for calculating the FLOPs in the forward() process based on torch.fx
MIT License
87 stars 2 forks source link

view内部采用“tuple加法”写法产生的bug #17

Open WuGuommming opened 2 months ago

WuGuommming commented 2 months ago

例如x = input.view((-1, 3 * fram_num) + input.size()[2: ])

用这个写法的view会在FunctionFLOPs_elemwise里面报错(因为这个view的内部是add) 这个add的result是个tuple,既不是tensor也不是number,所以会在flops_ops.py Line 205产生TypeError

当然了这里完全可以写成input.view(-1, 3 * frame_num, input.size()[2], input.size()[3])来规避这个错误 但是似乎Tensor和Number之外的数据的加法操作都会在这里引起这个错误? 由于我对torch.fx不太熟悉,所以只能提出浅薄的见解。

zugexiaodui commented 2 months ago

是的,torch.fx会把各种运算包括显式和隐式的item()操作作为Node类,类型不再是list,所以没法相加了。