PaddlePaddle / PaddleVideo

Awesome video understanding toolkits based on PaddlePaddle. It supports video data annotation tools, lightweight RGB and skeleton based action recognition model, practical applications for video tagging and sport action detection.
Apache License 2.0
1.46k stars 374 forks source link

slowfast在summary的时候报错 #674

Open Bradly-s opened 5 months ago

Bradly-s commented 5 months ago

summary.py部分代码 def main(): args = parse_args() cfg, model_name = _trim(get_config(args.config, show=False), args) print(f"Building model({model_name})...") model = build_model(cfg)

img_size = args.img_size
num_seg = args.num_seg
#NOTE: only support tsm now, will refine soon
params_info = paddle.summary(model, (1, 1, num_seg, 3, img_size, img_size))
# print(params_info)

args.FLOPs = True
if args.FLOPs:
    flops_info = paddle.flops(model, [1, 1, num_seg, 3, img_size, img_size], print_detail=True)
    print("args.FLOPs:")
    print(flops_info)

if name == "main": main()

报错: Traceback (most recent call last): File "/mnt/sdb1/swf/project/PaddleVideo/tools/summary.py", line 109, in main() File "/mnt/sdb1/swf/project/PaddleVideo/tools/summary.py", line 92, in main params_info = paddle.summary(model, (1, 1, num_seg, 3, img_size, img_size)) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/hapi/model_summary.py", line 308, in summary result, params_info = summary_string(net, _input_size, dtypes, input) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/decorator.py", line 232, in fun return caller(func, *(extras + args), kw) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/base/dygraph/base.py", line 350, in _decorate_function return func(*args, kwargs) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/hapi/model_summary.py", line 444, in summary_string model(x) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/nn/layer/layers.py", line 1423, in call return self.forward(inputs, kwargs) File "/mnt/sdb1/swf/project/PaddleVideo/paddlevideo/modeling/framework/recognizers/base.py", line 55, in forward return self.infer_step(data_batch) File "/mnt/sdb1/swf/project/PaddleVideo/paddlevideo/modeling/framework/recognizers/recognizer3d.py", line 91, in infer_step cls_score = self.forward_net(imgs) File "/mnt/sdb1/swf/project/PaddleVideo/paddlevideo/modeling/framework/recognizers/recognizer3d.py", line 28, in forward_net feature = self.backbone(imgs) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/nn/layer/layers.py", line 1425, in call return self._dygraph_call_func(*inputs, kwargs) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/nn/layer/layers.py", line 1404, in _dygraph_call_func outputs = self.forward(*inputs, kwargs) File "/mnt/sdb1/swf/project/PaddleVideo/paddlevideo/modeling/backbones/resnet_slowfast.py", line 776, in forward x = self.s1(x) #VideoModelStem File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/nn/layer/layers.py", line 1425, in call return self._dygraph_call_func(*inputs, *kwargs) File "/home/pl/anaconda3/envs/swfpd/lib/python3.7/site-packages/paddle/nn/layer/layers.py", line 1404, in _dygraph_call_func outputs = self.forward(inputs, kwargs) File "/mnt/sdb1/swf/project/PaddleVideo/paddlevideo/modeling/backbones/resnet_slowfast.py", line 505, in forward self.num_pathways) AssertionError: Input tensor does not contain 2 pathway

Process finished with exit code 1

westfish commented 5 months ago

根据你提供的错误信息,问题出在resnet_slowfast.py文件的第505行,这里的self.num_pathways期望输入张量包含2个路径,但实际上并没有,这可能是因为你的模型配置或输入数据的问题。

另外,如果有图像、视频理解和生成的需求,可以使用我们新的跨模态工具: https://github.com/PaddlePaddle/PaddleMIX/tree/develop