Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing attr model.model when loading custom yolov model #8830

Merged
merged 3 commits into from
Aug 1, 2022

Commits on Aug 1, 2022

  1. Update hubconf.py

    Loading a custom yolov model causes this line to fail. Adding a test to check if the model actually has a model.model field. With this check, I'm able to load the model no prob.
    
    Loading model via
    
    ```py
        model = torch.hub.load(
            'ultralytics/yolov5', 'custom', 'models/frozen_backbone_coco_unlabeled_best.onnx',
            autoshape=True, force_reload=False
        )
    ```
    
    Causes traceback:
    
    ```
    Traceback (most recent call last):
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/flask/app.py", line 2077, in wsgi_app
        response = self.full_dispatch_request()
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/flask/app.py", line 1525, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/flask/app.py", line 1523, in full_dispatch_request
        rv = self.dispatch_request()
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/flask/app.py", line 1509, in dispatch_request
        return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
      File "/Users/jackson/Documents/GitHub/w210-capstone/api/endpoints/predictions.py", line 26, in post_predictions
        yolov_predictions = predict_bounding_boxes_for_collection(collection_id)
      File "/Users/jackson/Documents/GitHub/w210-capstone/api/predictions/predict_bounding_boxes.py", line 43, in predict_bounding_boxes_for_collection
        model = torch.hub.load(
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/torch/hub.py", line 404, in load
        model = _load_local(repo_or_dir, model, *args, **kwargs)
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/torch/hub.py", line 433, in _load_local
        model = entry(*args, **kwargs)
      File "/Users/jackson/.cache/torch/hub/ultralytics_yolov5_master/hubconf.py", line 72, in custom
        return _create(path, autoshape=autoshape, verbose=_verbose, device=device)
      File "/Users/jackson/.cache/torch/hub/ultralytics_yolov5_master/hubconf.py", line 67, in _create
        raise Exception(s) from e
    Exception: 'DetectMultiBackend' object has no attribute 'model'. Cache may be out of date, try `force_reload=True` or see ultralytics#36 for help.
    Exception on /api/v1/predictions [POST]
    Traceback (most recent call last):
      File "/Users/jackson/.cache/torch/hub/ultralytics_yolov5_master/hubconf.py", line 58, in _create
        model.model.model[-1].inplace = False  # Detect.inplace=False for safe multithread inference
      File "/Users/jackson/Documents/GitHub/w210-capstone/.venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1185, in __getattr__
        raise AttributeError("'{}' object has no attribute '{}'".format(
    AttributeError: 'DetectMultiBackend' object has no attribute 'model'
    ```
    jacksonargo committed Aug 1, 2022
    Configuration menu
    Copy the full SHA
    46cf288 View commit details
    Browse the repository at this point in the history
  2. Update hubconf.py

    glenn-jocher committed Aug 1, 2022
    Configuration menu
    Copy the full SHA
    4130b3d View commit details
    Browse the repository at this point in the history
  3. Update common.py

    glenn-jocher committed Aug 1, 2022
    Configuration menu
    Copy the full SHA
    2c9850a View commit details
    Browse the repository at this point in the history