Skip to content

fix: resolve TypeError during leaderboard sort on AutoML reload (fixes #681)#833

Open
manoprasad2006 wants to merge 1 commit into
mljar:masterfrom
manoprasad2006:master
Open

fix: resolve TypeError during leaderboard sort on AutoML reload (fixes #681)#833
manoprasad2006 wants to merge 1 commit into
mljar:masterfrom
manoprasad2006:master

Conversation

@manoprasad2006

Copy link
Copy Markdown

Summary

Fixes #681 — AutoML reload crashes with TypeError: '<' not supported between instances of 'float' and 'str' during model stacking or
leaderboard sorting.

Root Cause

  1. ModelFramework.save() serialized final_loss to framework.json
    as a string via str(desc["final_loss"]).
  2. ModelFramework.load() read it back as a raw string (e.g. "0.1234").
  3. When new models were trained alongside reloaded ones, the leaderboard
    mixed float (new models) and str (reloaded models) in metric_value.
  4. ldb.sort_values(by="metric_value") crashed because Python 3 does not
    support < comparisons between float and str.

Changes

  • supervised/model_framework.py
    • Removed str() cast from final_loss in ModelFramework.save()
      so it is written as a numeric float
    • Added float() conversion in ModelFramework.load() with a
      try-except for backward compatibility with older saved directories
  • supervised/ensemble.py
    • Added float() conversion in Ensemble.load() when reading
      best_loss from ensemble.json for extra robustness

Testing

Verified by reloading a saved AutoML directory and continuing training —
leaderboard sorts correctly with no TypeError.

Closes #681

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AutoML reload gives me typeError: '<' not supported between instances of 'float' and 'str'

1 participant