pypi optuna 1.0.0
v1.0.0

latest releases: 4.2.0, 4.1.0, 4.0.0...
5 years ago

This is the release note of v1.0.0. See here for the complete list of solved issues and merged PRs.

Highlights

The first major version of Optuna v1.0 is released. It includes a stable API, significant performance improvements by reduced memory allocations and database storage accesses. Documentation has been revised and Jupyter Notebook examples are available on Google Colab. The visualization API has become customizable such that layouts can be modified.

Python 2 Support Drop

Due to the end-of-life (EOL) of Python 2 in January 1, 2020, Optuna has dropped the support for Python 2 and has now shifted to support Python 3.5.1 and above.

Blog

A developer blog has started. The first post is about this release and future roadmaps.

New Features

  • Use Joblib to parallelize optimization. (#692, thanks @AnesBenmerzoug!)
  • trials_dataframe to allow returning DataFrame with flattened columns. (#736)
  • Make plot functions return Plotly graph object. (#704)

Enhancements

  • Add options to disable trials deep copy. (#696)
  • Slice plot to dynamically resize figure width depending on number of parameters. (#720)
  • Fix implementations of __eq__. (#726)
  • Speed up study.best_trial for RDB. (#729, thanks @chris-chris!)
  • Use the preferred module level logger in structs.py. (#768)
  • Use SourceFileLoader instead of imp module. (#778)
  • Add warning about use of InMemoryStorage with multi-processing. (#780)
  • Avoid redundant sort (reverse) in successive halving. (#807)

Bug Fixes

  • Use default parameter when tuned parameter doesn't improve. (#721)

Documents

  • Introduce doctest. (#702)
  • Comment out notes for contributors in GitHub templates. (#738, thanks @crcrpar!)
  • Add installation via conda. (#739, thanks @crcrpar!)
  • Add badges to README. (#740, thanks @crcrpar!)
  • First Contribution clarity edits. (#744)
  • Clarity edits to configurations.rst. (#747)
  • Add Gitter badge to README.md. (#749)
  • Replace Slack with Gitter in the issue template. (#750)
  • Setup intersphinx. (#754)
  • Follow Google Analytics Privacy Disclosure Policy. (#776)
  • Update example dataframe in tutorial. (#784)
  • Document BasePruner in docs. (#788, thanks @crcrpar!)
  • Update docstring of BasePruner.prune. (#793, thanks @crcrpar!)
  • Add favicon to doc. (#796, thanks @harupy!)
  • Fix indentation in tutorial/index.rst. (#816, thanks @harupy!)
  • Fix warnings in the documentation build. (#819, thanks @harupy!)
  • Add integration modules list to README. (#830)

Examples

  • Add an example for OptunaSearchCV. (#722, thanks @yutayamazaki!)
  • Add scikit-image example. (#730, thanks @tohmae!)
  • Merge visualization examples. (#735)
  • Add "Open In Colab" badge to visualization example. (#737, thanks @crcrpar!)
  • Add badge on README that launches starter notebook. (#741, thanks @harupy!)
  • Consistent import of optuna in examples. (#746)
  • Remove Google Colab preinstalled library from quickstart.ipynb. (#753)
  • Refactor model definition of examples/pytorch_simple.py. (#779, thanks @crcrpar!)
  • Fix Colab badge on visualization example notebook. (#789, thanks @harupy!)
  • Add MLflow example. (#795, thanks @harupy!)
  • Use callback to report results to MLflow. (#799)
  • Add README with gif to MLflow example. (#802, thanks @harupy!)
  • Revise quickstart Jupyter notebook. (#804)

Tests

  • Stop passing step to should_prune in chainermn. (#764, thanks @crcrpar!)
  • Remove a temporary workaround in the test_callbacks function. (#769)
  • Add lock acquisition to make test_callbacks test thread-safe. (#773)
  • Simplify Study unit test parameterizations. (#774)
  • Remove cache_mode argument to fix a broken test. (#790)

Code Fixes

  • Dissect optuna/visualization.py. (#681, thanks @crcrpar!)
  • Refactor setup.py. (#742)
  • Fix deprecated property access. (#751)
  • Remove StudySummary.__ne__. (#756)
  • Remove redundant trailing commas. (#757)
  • Fix a typo in RDBStorage. (#765)
  • Change logger to study's module variable. (#770, thanks @crcrpar!)
  • Separate standard library imports from third party imports. (#777, thanks @yutayamazaki!)
  • Early commit after RDB session creation. (#792)
  • Refactoring of successive halving. (#808)

Installation

  • Remove cython from requirements. (#781)
  • Add version restriction of scipy. (#801)
  • Add version constraint of scikit-learn (<=0.22.0). (#826)
  • Add version constraint of pillow to avoid torchvision's issue. (#827)

Breaking Changes

  • Prefix '_' to private functions in optuna.dashboard. (#698)
  • Prefix '_' to private classes and attributes in optuna.samplers. (#699)
  • Prefix '_' to private attributes of pruners. (#703)
  • Make plot functions return Plotly graph object. (#704)
  • Prefix '_' to private attributes of classes in optuna.integration. (#705)
  • Remove enable_cache option from RDBStorage. (#706)
  • Remove Python 2 version check from integration.__init__.py condition. (#712)
  • Remove six. (#714)
  • Remove __future__. (#715)
  • Make bokeh-allow-websocket-origins required. (#716)
  • Make study_id private. (#718)
  • Add FrozenTrial.__lt__ to sort trials without key. (#719)
  • Remove version checks from setup.py. (#724)
  • trials_dataframe to allow returning DataFrame with flattened columns. (#736)
  • BaseDistribution.__hash__ to take __class__ into account. (#743)
  • Only allow float, str and castable to float in categorical distribution. (#758)
  • Improving usability of TrialState in trials dataframes. (#771)
  • Remove deprecated product_search_space function. (#772)
  • Add 'attrs' option to Study.trials_dataframe(). (#775)

Continuous Integration

  • Drop CI jobs for Python 2.7. (#710)
  • Add CI jobs for Python 3.8. (#759)
  • Merge with master branch in CI jobs. (#791)

Don't miss a new optuna release

NewReleases is sending notifications on new releases.