Skip to content

Commit b3b30c3

Browse files
README updated
1 parent bfb402a commit b3b30c3

2 files changed

Lines changed: 71 additions & 20 deletions

File tree

README.md

Lines changed: 71 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,87 @@
1+
<p align="left">
2+
<img height="200" src="docs/img/spotLogo.png" alt="spot_logo">
3+
</p>
4+
15
# spotPython
26

37
Sequential Parameter Optimization in Python
48

5-
# Development
9+
* 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].
10+
* spotPython is a sequential model-based optimization (SMBO) method [BLP05].
611

712

8-
## Styleguide
13+
# Installation
914

10-
Follow the Google Python Style Guide from [https://google.github.io/styleguide/pyguide.html]([https://google.github.io/styleguide/pyguide.html).
15+
* Installation can be done with `pip`:
1116

12-
## Pre commit checks
17+
`pip install spotPython`
1318

14-
Before you commit your code, please check that it is "clean".
15-
To do so, first run [`black`](https://github.com/psf/black) from the projects root directory:
19+
# spotPython Documentation
1620

17-
```
18-
$ black .
19-
```
21+
* [Bartz-Beielstein (2023). PyTorch Hyperparameter Tuning --- A Tutorial for spotPython (Working Paper)](https://sequential-parameter-optimization.github.io/spotPython/).
2022

21-
Next, check if [`flake8`](https://flake8.pycqa.org/en/latest/) shows any errors:
23+
> **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.
24+
25+
26+
# spotPython Features
27+
28+
* Some of the advantages of `spotPython` are:
29+
30+
- Numerical and categorical hyperparameters.
31+
- Powerful surrogate models.
32+
- Flexible approach and easy to use.
33+
- Simple JSON files for the specification of the hyperparameters.
34+
- Extension of default and user specified network classes.
35+
- Noise handling techniques.
36+
37+
# Citation
38+
39+
```bibtex
40+
@techreport{bart23e,
41+
author = {Bartz-Beielstein, Thomas},
42+
title = {PyTorch Hyperparameter Tuning --- A Tutorial for spotPython},
43+
year = {2023}}
44+
45+
46+
@book{bart21i,
47+
editor = {Bartz,Eva and Bartz-Beielstein, Thomas and Zaefferer, Martin and Mersmann, Olaf},
48+
isbn = {ISBN 978-981-19-5169-5},
49+
keywords = {bartzPublic},
50+
note = {in print},
51+
publisher = {Springer},
52+
title = {{Hyperparameter Tuning for Machine and Deep Learning with R - A Practical Guide}},
53+
year = {2022}
54+
url = {https://link.springer.com/book/10.1007/978-981-19-5170-1}
55+
}
56+
57+
58+
@inproceedings{BLP05,
59+
author = {Bartz-Beielstein, Thomas and Lasarczyk, Christian and Preuss, Mike},
60+
title = {{Sequential Parameter Optimization}},
61+
booktitle = {{Proceedings 2005 Congress on Evolutionary Computation (CEC'05), Edinburgh, Scotland}},
62+
date-added = {2016-10-30 11:44:52 +0000},
63+
date-modified = {2021-07-22 12:12:43 +0200},
64+
doi = {10.1109/CEC.2005.1554761},
65+
editor = {McKay, B and others},
66+
isbn = {0-7803-9363-5},
67+
issn = {1089-778X},
68+
pages = {773--780},
69+
publisher = {{IEEE Press}},
70+
address = {Piscataway NJ},
71+
year = {2005},
72+
url= {http://dx.doi.org/10.1109/CEC.2005.1554761}
73+
}
2274
23-
```
24-
$ flake8
2575
```
2676

27-
Fix any shown errors before you commit.
77+
# Appendix
2878

29-
# Installation
79+
* This appendix contains some information on how to setup the development environment for spotPython.
80+
Information provided here is not required for the installation of spotPython.
3081

31-
`pip install spotPython`
82+
## Styleguide
83+
84+
Follow the Google Python Style Guide from [https://google.github.io/styleguide/pyguide.html]([https://google.github.io/styleguide/pyguide.html).
3285

3386

3487
## Python
@@ -52,17 +105,15 @@ Fix any shown errors before you commit.
52105

53106
* [scipy lecture notes: optimizing code](https://scipy-lectures.org/advanced/optimizing/index.html)
54107

55-
https://scipy-lectures.org/advanced/optimizing/index.html
56-
57108
## Editor/IDE
58109

59110
* Optional: Install [visualstudio](https://code.visualstudio.com)
60111
* Optional: Install [quarto](https://quarto.org)
61112

62113

63-
## Package Installation
114+
## Package Building
64115

65-
### Configuration Files
116+
### Local Setup
66117

67118
* This information is based on [https://packaging.python.org/en/latest/tutorials/packaging-projects/](https://packaging.python.org/en/latest/tutorials/packaging-projects/)
68119
* Information is stored in `pyproject.toml` (`setup.py` is not used anymore.)
@@ -74,7 +125,7 @@ https://scipy-lectures.org/advanced/optimizing/index.html
74125
* `include src/spotPython/data/*.rst`
75126
* `LICENSE`: see [LICENSE](./LICENSE)
76127

77-
### Installation
128+
### Local Installation
78129

79130
* Perform the following steps to install the package:
80131
* Make sure you have the latest version of PyPA’s build installed:

docs/img/spotLogo.png

66.1 KB
Loading

0 commit comments

Comments
 (0)