Model tune for Trained model

from ultralytics import YOLO
model = YOLO("/kaggle/input/convnext-yolo-100/pytorch/default/1/vit-100e-best.pt")
search_space = {
    "lr0": (1e-5, 1e-1),
}

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(
    data="/kaggle/working/pvelad-2/data.yaml",
    epochs=30,
    iterations=300,
    optimizer="AdamW",
    space=search_space,
    plots=True,
    save=False,
    val=False
)

I have used the above code to tune my trained model. But when running it, I have the following error message

Mean of empty slice.
invalid value encountered in scalar divide
Degrees of freedom <= 0 for slice
invalid value encountered in divide
invalid value encountered in scalar divide
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_37/455078109.py in <cell line: 0>()
      5 
      6 # Tune hyperparameters on COCO8 for 30 epochs
----> 7 model.tune(
      8     data="/kaggle/working/pvelad-2/data.yaml",
      9     epochs=30,

/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py in tune(self, use_ray, iterations, *args, **kwargs)
    853             custom = {}  # method defaults
    854             args = {**self.overrides, **custom, **kwargs, "mode": "train"}  # highest priority args on the right
--> 855             return Tuner(args=args, _callbacks=self.callbacks)(model=self, iterations=iterations)
    856 
    857     def _apply(self, fn) -> Model:

/usr/local/lib/python3.11/dist-packages/ultralytics/engine/tuner.py in __call__(self, model, iterations, cleanup)
    440 
    441             # Plot tune results
--> 442             plot_tune_results(str(self.tune_csv))
    443 
    444             # Save and print tune results

/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py in wrapper(*args, **kwargs)
    377             try:
    378                 with plt.rc_context(rcparams):
--> 379                     result = func(*args, **kwargs)
    380             finally:
    381                 if switch:

/usr/local/lib/python3.11/dist-packages/ultralytics/utils/plotting.py in plot_tune_results(csv_file, exclude_zero_fitness_points)
    996             break
    997         x, fitness = x[mask], fitness[mask]
--> 998     j = np.argmax(fitness)  # max fitness index
    999     n = math.ceil(len(keys) ** 0.5)  # columns and rows in plot
   1000     plt.figure(figsize=(10, 10), tight_layout=True)

/usr/local/lib/python3.11/dist-packages/numpy/core/fromnumeric.py in argmax(a, axis, out, keepdims)

/usr/local/lib/python3.11/dist-packages/numpy/core/fromnumeric.py in _wrapfunc(obj, method, *args, **kwds)

ValueError: attempt to get argmax of an empty sequence
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 1034, in <module>
    entrypoint(debug="")
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 992, in entrypoint
    getattr(model, mode)(**overrides)  # default args from model
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py", line 795, in train
    self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/models/yolo/detect/train.py", line 65, in __init__
    super().__init__(cfg, overrides, _callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 160, in __init__
    self.data = self.get_dataset()
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 647, in get_dataset
    data = check_det_dataset(self.args.data)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/data/utils.py", line 481, in check_det_dataset
    check_font("Arial.ttf" if is_ascii(data["names"]) else "Arial.Unicode.ttf")  # download fonts
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py", line 500, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/checks.py", line 326, in check_font
    from matplotlib import font_manager  # scope for faster 'import ultralytics'
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/__init__.py", line 129, in <module>
    from . import _api, _version, cbook, _docstring, rcsetup
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/rcsetup.py", line 27, in <module>
    from matplotlib.colors import Colormap, is_color_like
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/colors.py", line 56, in <module>
    from matplotlib import _api, _cm, cbook, scale
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/scale.py", line 22, in <module>
    from matplotlib.ticker import (
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/ticker.py", line 138, in <module>
    from matplotlib import transforms as mtransforms
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/transforms.py", line 49, in <module>
    from matplotlib._path import (
AttributeError: _ARRAY_API not found
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 647, in get_dataset
    data = check_det_dataset(self.args.data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/data/utils.py", line 481, in check_det_dataset
    check_font("Arial.ttf" if is_ascii(data["names"]) else "Arial.Unicode.ttf")  # download fonts
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py", line 500, in decorated
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/checks.py", line 326, in check_font
    from matplotlib import font_manager  # scope for faster 'import ultralytics'
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/__init__.py", line 129, in <module>
    from . import _api, _version, cbook, _docstring, rcsetup
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/rcsetup.py", line 27, in <module>
    from matplotlib.colors import Colormap, is_color_like
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/colors.py", line 56, in <module>
    from matplotlib import _api, _cm, cbook, scale
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/scale.py", line 22, in <module>
    from matplotlib.ticker import (
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/ticker.py", line 138, in <module>
    from matplotlib import transforms as mtransforms
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/transforms.py", line 49, in <module>
    from matplotlib._path import (
ImportError: numpy.core.multiarray failed to import

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 1034, in <module>
    entrypoint(debug="")
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 992, in entrypoint
    getattr(model, mode)(**overrides)  # default args from model
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py", line 795, in train
    self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/models/yolo/detect/train.py", line 65, in __init__
    super().__init__(cfg, overrides, _callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 160, in __init__
    self.data = self.get_dataset()
                ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 651, in get_dataset
    raise RuntimeError(emojis(f"Dataset '{clean_url(self.args.data)}' error ❌ {e}")) from e
RuntimeError: Dataset '/kaggle/working/pvelad-2/data.yaml' error ❌ numpy.core.multiarray failed to import

Can you please help me with this? I executed this in Kaggle Env

What’s the full training log?

Hi @Toxite here is the full log.

Tuner: Initialized Tuner instance with 'tune_dir=/kaggle/working/runs/detect/tune10'
Tuner: 💡 Learn about tuning at https://docs.ultralytics.com/guides/hyperparameter-tuning
Tuner: Starting iteration 1/300 with hyperparameters: {'lr0': 0.01}
Ultralytics 8.3.223 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
engine/trainer: agnostic_nms=False, amp=True, augment=False, auto_augment=randaugment, batch=16, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, compile=False, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=/kaggle/working/pv-data.yaml, degrees=0.0, deterministic=True, device=None, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, epochs=30, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=224, int8=False, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=/kaggle/input/convnext-yolo-100/pytorch/default/1/vit-100e-best.pt, momentum=0.937, mosaic=1.0, multi_scale=False, name=train10, nbs=64, nms=False, opset=None, optimize=False, optimizer=AdamW, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, rect=False, resume=False, retina_masks=False, save=False, save_conf=False, save_crop=False, save_dir=/kaggle/working/runs/detect/train10, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=False, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 1034, in <module>
    entrypoint(debug="")
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 992, in entrypoint
    getattr(model, mode)(**overrides)  # default args from model
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py", line 795, in train
    self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/models/yolo/detect/train.py", line 65, in __init__
    super().__init__(cfg, overrides, _callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 160, in __init__
    self.data = self.get_dataset()
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 647, in get_dataset
    data = check_det_dataset(self.args.data)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/data/utils.py", line 481, in check_det_dataset
    check_font("Arial.ttf" if is_ascii(data["names"]) else "Arial.Unicode.ttf")  # download fonts
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py", line 500, in decorated
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/checks.py", line 326, in check_font
    from matplotlib import font_manager  # scope for faster 'import ultralytics'
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/__init__.py", line 129, in <module>
    from . import _api, _version, cbook, _docstring, rcsetup
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/rcsetup.py", line 27, in <module>
    from matplotlib.colors import Colormap, is_color_like
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/colors.py", line 56, in <module>
    from matplotlib import _api, _cm, cbook, scale
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/scale.py", line 22, in <module>
    from matplotlib.ticker import (
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/ticker.py", line 138, in <module>
    from matplotlib import transforms as mtransforms
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/transforms.py", line 49, in <module>
    from matplotlib._path import (
AttributeError: _ARRAY_API not found
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 647, in get_dataset
    data = check_det_dataset(self.args.data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/data/utils.py", line 481, in check_det_dataset
    check_font("Arial.ttf" if is_ascii(data["names"]) else "Arial.Unicode.ttf")  # download fonts
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py", line 500, in decorated
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/utils/checks.py", line 326, in check_font
    from matplotlib import font_manager  # scope for faster 'import ultralytics'
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/__init__.py", line 129, in <module>
    from . import _api, _version, cbook, _docstring, rcsetup
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/rcsetup.py", line 27, in <module>
    from matplotlib.colors import Colormap, is_color_like
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/colors.py", line 56, in <module>
    from matplotlib import _api, _cm, cbook, scale
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/scale.py", line 22, in <module>
    from matplotlib.ticker import (
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/ticker.py", line 138, in <module>
    from matplotlib import transforms as mtransforms
  File "/usr/local/lib/python3.11/dist-packages/matplotlib/transforms.py", line 49, in <module>
    from matplotlib._path import (
ImportError: numpy.core.multiarray failed to import

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 1034, in <module>
    entrypoint(debug="")
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/cfg/__init__.py", line 992, in entrypoint
    getattr(model, mode)(**overrides)  # default args from model
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py", line 795, in train
    self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/models/yolo/detect/train.py", line 65, in __init__
    super().__init__(cfg, overrides, _callbacks)
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 160, in __init__
    self.data = self.get_dataset()
                ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/ultralytics/engine/trainer.py", line 651, in get_dataset
    raise RuntimeError(emojis(f"Dataset '{clean_url(self.args.data)}' error ❌ {e}")) from e
RuntimeError: Dataset '/kaggle/working/pv-data.yaml' error ❌ numpy.core.multiarray failed to import
ERROR ❌ training failure for hyperparameter tuning iteration 1
Command '['/usr/bin/python3', '-m', 'ultralytics.cfg.__init__', 'train', 'task=detect', 'mode=train', 'model=/kaggle/input/convnext-yolo-100/pytorch/default/1/vit-100e-best.pt', 'data=/kaggle/working/pv-data.yaml', 'epochs=30', 'time=None', 'patience=100', 'batch=16', 'imgsz=224', 'save=False', 'save_period=-1', 'cache=False', 'device=None', 'workers=8', 'project=None', 'name=None', 'exist_ok=False', 'pretrained=True', 'optimizer=AdamW', 'verbose=True', 'seed=0', 'deterministic=True', 'single_cls=False', 'rect=False', 'cos_lr=False', 'close_mosaic=10', 'resume=False', 'amp=True', 'fraction=1.0', 'profile=False', 'freeze=None', 'multi_scale=False', 'compile=False', 'overlap_mask=True', 'mask_ratio=4', 'dropout=0.0', 'val=False', 'split=val', 'save_json=False', 'conf=None', 'iou=0.7', 'max_det=300', 'half=False', 'dnn=False', 'plots=True', 'source=None', 'vid_stride=1', 'stream_buffer=False', 'visualize=False', 'augment=False', 'agnostic_nms=False', 'classes=None', 'retina_masks=False', 'embed=None', 'show=False', 'save_frames=False', 'save_txt=False', 'save_conf=False', 'save_crop=False', 'show_labels=True', 'show_conf=True', 'show_boxes=True', 'line_width=None', 'format=torchscript', 'keras=False', 'optimize=False', 'int8=False', 'dynamic=False', 'simplify=True', 'opset=None', 'workspace=None', 'nms=False', 'lr0=0.01', 'lrf=0.01', 'momentum=0.937', 'weight_decay=0.0005', 'warmup_epochs=3.0', 'warmup_momentum=0.8', 'warmup_bias_lr=0.1', 'box=7.5', 'cls=0.5', 'dfl=1.5', 'pose=12.0', 'kobj=1.0', 'nbs=64', 'hsv_h=0.015', 'hsv_s=0.7', 'hsv_v=0.4', 'degrees=0.0', 'translate=0.1', 'scale=0.5', 'shear=0.0', 'perspective=0.0', 'flipud=0.0', 'fliplr=0.5', 'bgr=0.0', 'mosaic=1.0', 'mixup=0.0', 'cutmix=0.0', 'copy_paste=0.0', 'copy_paste_mode=flip', 'auto_augment=randaugment', 'erasing=0.4', 'cfg=None', 'tracker=botsort.yaml']' returned non-zero exit status 1.
Mean of empty slice.
invalid value encountered in scalar divide
Degrees of freedom <= 0 for slice
invalid value encountered in divide
invalid value encountered in scalar divide
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_37/176896103.py in <cell line: 0>()
      5 
      6 # Tune hyperparameters on COCO8 for 30 epochs
----> 7 model.tune(
      8     data="/kaggle/working/pv-data.yaml",
      9     epochs=30,

/usr/local/lib/python3.11/dist-packages/ultralytics/engine/model.py in tune(self, use_ray, iterations, *args, **kwargs)
    853             custom = {}  # method defaults
    854             args = {**self.overrides, **custom, **kwargs, "mode": "train"}  # highest priority args on the right
--> 855             return Tuner(args=args, _callbacks=self.callbacks)(model=self, iterations=iterations)
    856 
    857     def _apply(self, fn) -> Model:

/usr/local/lib/python3.11/dist-packages/ultralytics/engine/tuner.py in __call__(self, model, iterations, cleanup)
    440 
    441             # Plot tune results
--> 442             plot_tune_results(str(self.tune_csv))
    443 
    444             # Save and print tune results

/usr/local/lib/python3.11/dist-packages/ultralytics/utils/__init__.py in wrapper(*args, **kwargs)
    377             try:
    378                 with plt.rc_context(rcparams):
--> 379                     result = func(*args, **kwargs)
    380             finally:
    381                 if switch:

/usr/local/lib/python3.11/dist-packages/ultralytics/utils/plotting.py in plot_tune_results(csv_file, exclude_zero_fitness_points)
    996             break
    997         x, fitness = x[mask], fitness[mask]
--> 998     j = np.argmax(fitness)  # max fitness index
    999     n = math.ceil(len(keys) ** 0.5)  # columns and rows in plot
   1000     plt.figure(figsize=(10, 10), tight_layout=True)

/usr/local/lib/python3.11/dist-packages/numpy/core/fromnumeric.py in argmax(a, axis, out, keepdims)

/usr/local/lib/python3.11/dist-packages/numpy/core/fromnumeric.py in _wrapfunc(obj, method, *args, **kwds)

ValueError: attempt to get argmax of an empty sequence

You can try installing Ultralytics with pip install ultralytics --no-deps in Kaggle.

1 Like

Thanks @Toxite It worked

Great to hear it’s working!

For future Kaggle runs, keeping Ultralytics installed without auto-deps avoids NumPy 2.x ABI issues. If you ever hit the “argmax of an empty sequence” during tuning plots, it usually means all trials failed and the CSV is empty—run a quick smoke test first (e.g., iterations=2, plots=False) then re-enable plots. You can find a concise walkthrough in the Hyperparameter Tuning guide, including model.tune() usage and tips for faster, reliable runs in the Tuner flow.

1 Like