Skip to main content

spotgui - GUI for the Sequential Parameter Optimization in Python

Project description

spot_logo

spotgui

GUI for the Sequential Parameter Optimization in Python

  • spotPython is a Python version of the well-known hyperparameter tuner SPOT, which has been developed in the R programming environment for statistical analysis for over a decade [bart21i].
  • spotPython is a sequential model-based optimization (SMBO) method [BLP05].

Installation

  • Installation can be done with pip:

pip install spotgui

spotPython Documentation

  • Hyperparameter-tuning Cookbook: A guide for scikit-learn, PyTorch, river, and spotPython. Available at https://sequential-parameter-optimization.github.io/spotPython/.

  • Bartz-Beielstein (2023). PyTorch Hyperparameter Tuning --- A Tutorial for spotPython (Working Paper).

    Abstract: The goal of hyperparameter tuning (or hyperparameter optimization) is to optimize the hyperparameters to improve the performance of the machine or deep learning model. spotPython ("Sequential Parameter Optimization Toolbox in Python") is the Python version of the well-known hyperparameter tuner SPOT, which has been developed in the R programming environment for statistical analysis for over a decade. PyTorch is an optimized tensor library for deep learning using GPUs and CPUs. This document shows how to integrate the spotPython hyperparameter tuner into the PyTorch training workflow. As an example, the results of the CIFAR10 image classifier are used. In addition to an introduction to spotPython, this tutorial also includes a brief comparison with Ray Tune, a Python library for running experiments and tuning hyperparameters. This comparison is based on the PyTorch hyperparameter tuning tutorial. The advantages and disadvantages of both approaches are discussed. We show that spotPython achieves similar or even better results while being more flexible and transparent than Ray Tune.

spotPython Features

  • Some of the advantages of spotPython are:

    • Numerical and categorical hyperparameters.
    • Powerful surrogate models.
    • Flexible approach and easy to use.
    • Simple JSON files for the specification of the hyperparameters.
    • Extension of default and user specified network classes.
    • Noise handling techniques.
    • Tensorboard interaction.

Citation

@ARTICLE{bart23earxiv,
       author = {{Bartz-Beielstein}, Thomas},
        title = "{PyTorch Hyperparameter Tuning -- A Tutorial for spotPython}",
      journal = {arXiv e-prints},
     keywords = {Computer Science - Machine Learning, Computer Science - Artificial Intelligence, Mathematics - Numerical Analysis, 68T07, A.1, B.8.0, G.1.6, G.4, I.2.8},
         year = 2023,
        month = may,
          eid = {arXiv:2305.11930},
        pages = {arXiv:2305.11930},
          doi = {10.48550/arXiv.2305.11930},
archivePrefix = {arXiv},
       eprint = {2305.11930},
 primaryClass = {cs.LG},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2023arXiv230511930B},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
@book{bart21i,
	editor = {Bartz,Eva and Bartz-Beielstein, Thomas and Zaefferer, Martin and Mersmann, Olaf},
	isbn = {ISBN 978-981-19-5169-5},
	keywords = {bartzPublic},
	note = {in print},
	publisher = {Springer},
	title = {{Hyperparameter Tuning for Machine and Deep Learning with R - A Practical Guide}},
	year = {2022}
  url = {https://link.springer.com/book/10.1007/978-981-19-5170-1}
}
@inproceedings{BLP05,
	author = {Bartz-Beielstein, Thomas and Lasarczyk, Christian and Preuss, Mike},
	title = {{Sequential Parameter Optimization}},
	booktitle = {{Proceedings 2005 Congress on Evolutionary Computation (CEC'05), Edinburgh, Scotland}},
	date-added = {2016-10-30 11:44:52 +0000},
	date-modified = {2021-07-22 12:12:43 +0200},
	doi = {10.1109/CEC.2005.1554761},
	editor = {McKay, B and others},
	isbn = {0-7803-9363-5},
	issn = {1089-778X},
	pages = {773--780},
	publisher = {{IEEE Press}},
  address = {Piscataway NJ},
	year = {2005},
	url= {http://dx.doi.org/10.1109/CEC.2005.1554761}
  }

Appendix

  • This appendix contains some information on how to setup the development environment for spotPython. Information provided here is not required for the installation of spotPython.

Styleguide

Follow the Google Python Style Guide from https://google.github.io/styleguide/pyguide.html.

Python

  • Mac Users: Install brew

    • brew install python and brew install graphviz etc.
  • Generate and activate a virtual environment, see venv, e.g.,

    • cd ~; python3 -m venv .venv
    • source ~/.venv/bin/activate

Python mkdocs

  • python -m pip install mkdocs mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index mkdocs-material
  • mkdocs build
  • mkdocs serve
  • http://127.0.0.1:8000/

Optimizing/Profiling Code

Editor/IDE

Package Building

Local Setup

Local Installation

  • Perform the following steps to install the package:
    • Make sure you have the latest version of PyPA’s build installed:
      • python3 -m pip install --upgrade build
    • Start the package building process via: python3 -m build
    • This command should output a lot of text and once completed should generate two files in the dist directory.
    • You can use the local spotPython*.tar.gz file from the dist folder for your package installation with pip, e.g.;
    • python3 -m pip install ./dist/spotPython-0.0.1.tar.gz

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spotgui-0.8.8.tar.gz (20.3 MB view details)

Uploaded Source

Built Distribution

spotgui-0.8.8-py3-none-any.whl (95.3 kB view details)

Uploaded Python 3

File details

Details for the file spotgui-0.8.8.tar.gz.

File metadata

  • Download URL: spotgui-0.8.8.tar.gz
  • Upload date:
  • Size: 20.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for spotgui-0.8.8.tar.gz
Algorithm Hash digest
SHA256 5f965939ddd3a237905286aecdc1c93f81676e400da6df54b27c419db66b31ca
MD5 d9cb4e4b3665d66f94cb1672e77ff7b1
BLAKE2b-256 75693a87f7720797bc195afb04362aca1062cc06cd6a5f3cb6fb92ff1741d9b5

See more details on using hashes here.

File details

Details for the file spotgui-0.8.8-py3-none-any.whl.

File metadata

  • Download URL: spotgui-0.8.8-py3-none-any.whl
  • Upload date:
  • Size: 95.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for spotgui-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ca9e2f70a1f3da5d9d542fbc7b79308f9377a6ffcef3a819ca9ead1595b2a584
MD5 e41088b9388b1805b10889c3107ab365
BLAKE2b-256 2c1d9c9ddaa4f97d0de3a401ffcc861badcf7170968f4822d963fd6be8a05eed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page