microsoft / nni

An open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.
https://nni.readthedocs.io
MIT License
14k stars 1.81k forks source link

NotImplementedError: argument of type: <class 'generator'> #5699

Open zx214 opened 11 months ago

zx214 commented 11 months ago

Describe the issue: Helllo!I prune yolov8 model with L1Pruner. I used yolov8s.pt. But I got this error.

Traceback (most recent call last):
 File "test_v8.py", line 36, in <module>
   graph_module = concrete_trace(model, (torch.rand([1, 3, 640, 640]),))
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_tracer.py", line 1606, in concrete_trace
    graph = tracer.trace(root,
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_tracer.py", line 1085, in trace
    (self.create_arg(OperatorPatcherContext.patch_run(fn, *args, *more_args, **kwargs)),),
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/operator_patcher.py", line 291, in patch_run
    return new_func(*args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/tasks.py", line 42, in new_func
    return self.predict(x, *args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/operator_patcher.py", line 291, in patch_run
    return new_func(*args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/tasks.py", line 59, in new_func
    return self._predict_once(x, profile, visualize)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/operator_patcher.py", line 291, in patch_run
    return new_func(*args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/tasks.py", line 79, in new_func
    x = m(x)  # run
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/operator_patcher.py", line 291, in patch_run
    return new_func(*args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/ultralytics/nn/modules/block.py", line 203, in new_func
    y.extend(m(y[-1]) for m in self.m)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/operator_patcher.py", line 291, in patch_run
    return new_func(*args, **kwargs)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_proxy.py", line 279, in __call__
    return self.tracer.create_proxy('call_method', self.attr, (self.root,) + args, kwargs)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_tracer.py", line 432, in create_proxy
    args_ = self.create_arg(args)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_tracer.py", line 524, in create_arg
    return super().create_arg(a)
 File "/usr/local/lib/python3.8/dist-packages/torch/fx/proxy.py", line 125, in create_arg
    return type(a)(self.create_arg(elem) for elem in a)
 File "/usr/local/lib/python3.8/dist-packages/torch/fx/proxy.py", line 125, in <genexpr>
    return type(a)(self.create_arg(elem) for elem in a)
 File "/usr/local/lib/python3.8/dist-packages/nni/common/concrete_trace_utils/concrete_tracer.py", line 524, in create_arg
    return super().create_arg(a)
 File "/usr/local/lib/python3.8/dist-packages/torch/fx/proxy.py", line 151, in create_arg
    raise NotImplementedError(f"argument of type: {type(a)}")

NotImplementedError: argument of type: <class 'generator'>

Environment: