Permalink
Please sign in to comment.
Browse files
Upgrade to 2.0.0
Complete rewriting of M-LOOP to make it more extensible and improve performance. M-LOOP is now includes threading and multiprocessing to remove any unnecessary delays between experiments. M-LOOP is installable with setuptool. M-LOOP now had documentation generated with sphinx.
- Loading branch information...
Showing
with
4,296 additions
and 1,115 deletions.
- +6 −0 .gitignore
- +27 −0 README.rst
- +39 −0 bin/M-LOOP
- +230 −0 docs/Makefile
- +281 −0 docs/make.bat
- +7 −0 docs/source/api/controllers.rst
- +17 −0 docs/source/api/index.rst
- +7 −0 docs/source/api/interfaces.rst
- +7 −0 docs/source/api/launchers.rst
- +7 −0 docs/source/api/learners.rst
- +4 −0 docs/source/api/mloop.rst
- +7 −0 docs/source/api/t_esting.rst
- +7 −0 docs/source/api/utilities.rst
- +10 −0 docs/source/api/visualizations.rst
- +304 −0 docs/source/conf.py
- +3 −0 docs/source/examples.rst
- BIN docs/source/images/M-LOOP_logo.ico
- BIN docs/source/images/M-LOOP_logo.pdf
- BIN docs/source/images/M-LOOP_logo.png
- BIN docs/source/images/M-LOOPandBEC.png
- +45 −0 docs/source/index.rst
- +78 −0 docs/source/install.rst
- +3 −0 docs/source/options.rst
- +6 −0 docs/source/tutorial.rst
- +10 −0 examples/complete_controller_config.txt
- +3 −0 examples/complete_extras_config.txt
- +31 −0 examples/complete_gaussian_process_config.txt
- +6 −0 examples/complete_logging_config.txt
- +16 −0 examples/complete_nelder_mead_config.txt
- +15 −0 examples/complete_random_config.txt
- +14 −0 examples/simple_gaussian_process_config.txt
- +13 −0 examples/simple_nelder_mead_config.txt
- +14 −0 examples/simple_random_config.txt
- +10 −10 mloop/__init__.py
- +661 −882 mloop/controllers.py
- +207 −223 mloop/interfaces.py
- +72 −0 mloop/launchers.py
- +1,183 −0 mloop/learners.py
- +238 −0 mloop/testing.py
- +150 −0 mloop/utilities.py
- +434 −0 mloop/visualizations.py
- +41 −0 setup.py
- +83 −0 tests/test_examples.py
27
README.rst
| @@ -0,0 +1,27 @@ | |||
| +====== | |||
| +M-LOOP | |||
| +====== | |||
| + | |||
| +The Machine-Learner Online Optimization Package is designed to automatically and rapidly optimize the parameters of a scientific experiment or computer controller system. | |||
| + | |||
| +To install M-LOOP simply run:: | |||
| + | |||
| +python setup.py develop | |||
| + | |||
| +In the M-LOOP source folder. | |||
| + | |||
| +For more details on how to use the package see the documentation. You can see it online at | |||
| + | |||
| +? | |||
| + | |||
| +Or you can build it by entering the docs folder and running: | |||
| + | |||
| +build html | |||
| + | |||
| +The docs can then be found in docs/build/html | |||
| + | |||
| +If you use M-LOOP please cite its first application: | |||
| + | |||
| +http://www.nature.com/articles/srep25890 | |||
| + | |||
| +M-LOOP is written and maintained by Michael R Hush <MichaelRHush@gmail.com>. | |||
39
bin/M-LOOP
| @@ -0,0 +1,39 @@ | |||
| +#! /usr/bin/env python | |||
| + | |||
| +''' | |||
| +M-LOOP Launcher | |||
| + | |||
| +Starts an instance of M-LOOP configured using a configuration file. | |||
| + | |||
| +Takes the following command line options | |||
| + | |||
| +-c filename for configuration file | |||
| + | |||
| +-h display help | |||
| + | |||
| +the default name for the configuration is "ExpConfig.txt" | |||
| +''' | |||
| + | |||
| +import sys | |||
| +import argparse | |||
| +import mloop as ml | |||
| +import mloop.launchers as mll | |||
| + | |||
| +def main(argv): | |||
| + | |||
| + parser = argparse.ArgumentParser(description='M-LOOP Launcher \n Version:' + ml.__version__+'\n \n Starts a new instance of M-LOOP based a on configuration file.', | |||
| + formatter_class=argparse.RawDescriptionHelpFormatter) | |||
| + parser.add_argument('-c','--configFile',default='exp_config.txt',help='Filename of configuration file.') | |||
| + parser.add_argument('-v','--version', action='version', version=ml.__version__) | |||
| + | |||
| + args = parser.parse_args() | |||
| + | |||
| + config_filename = args.configFile | |||
| + | |||
| + _ = mll.launch_from_file(config_filename) | |||
| + | |||
| +if __name__=="__main__": | |||
| + main(sys.argv[1:]) | |||
| + | |||
| + | |||
| + | |||
230
docs/Makefile
| @@ -0,0 +1,230 @@ | |||
| +# Makefile for Sphinx documentation | |||
| +# | |||
| + | |||
| +# You can set these variables from the command line. | |||
| +SPHINXOPTS = | |||
| +SPHINXBUILD = sphinx-build | |||
| +PAPER = | |||
| +BUILDDIR = build | |||
| + | |||
| +# User-friendly check for sphinx-build | |||
| +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) | |||
| + $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/) | |||
| +endif | |||
| + | |||
| +# Internal variables. | |||
| +PAPEROPT_a4 = -D latex_paper_size=a4 | |||
| +PAPEROPT_letter = -D latex_paper_size=letter | |||
| +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source | |||
| +# the i18n builder cannot share the environment and doctrees with the others | |||
| +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source | |||
| + | |||
| +.PHONY: help | |||
| +help: | |||
| + @echo "Please use \`make <target>' where <target> is one of" | |||
| + @echo " html to make standalone HTML files" | |||
| + @echo " dirhtml to make HTML files named index.html in directories" | |||
| + @echo " singlehtml to make a single large HTML file" | |||
| + @echo " pickle to make pickle files" | |||
| + @echo " json to make JSON files" | |||
| + @echo " htmlhelp to make HTML files and a HTML help project" | |||
| + @echo " qthelp to make HTML files and a qthelp project" | |||
| + @echo " applehelp to make an Apple Help Book" | |||
| + @echo " devhelp to make HTML files and a Devhelp project" | |||
| + @echo " epub to make an epub" | |||
| + @echo " epub3 to make an epub3" | |||
| + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" | |||
| + @echo " latexpdf to make LaTeX files and run them through pdflatex" | |||
| + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" | |||
| + @echo " text to make text files" | |||
| + @echo " man to make manual pages" | |||
| + @echo " texinfo to make Texinfo files" | |||
| + @echo " info to make Texinfo files and run them through makeinfo" | |||
| + @echo " gettext to make PO message catalogs" | |||
| + @echo " changes to make an overview of all changed/added/deprecated items" | |||
| + @echo " xml to make Docutils-native XML files" | |||
| + @echo " pseudoxml to make pseudoxml-XML files for display purposes" | |||
| + @echo " linkcheck to check all external links for integrity" | |||
| + @echo " doctest to run all doctests embedded in the documentation (if enabled)" | |||
| + @echo " coverage to run coverage check of the documentation (if enabled)" | |||
| + @echo " dummy to check syntax errors of document sources" | |||
| + | |||
| +.PHONY: clean | |||
| +clean: | |||
| + rm -rf $(BUILDDIR)/* | |||
| + | |||
| +.PHONY: html | |||
| +html: | |||
| + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html | |||
| + @echo | |||
| + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." | |||
| + | |||
| +.PHONY: dirhtml | |||
| +dirhtml: | |||
| + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml | |||
| + @echo | |||
| + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." | |||
| + | |||
| +.PHONY: singlehtml | |||
| +singlehtml: | |||
| + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml | |||
| + @echo | |||
| + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." | |||
| + | |||
| +.PHONY: pickle | |||
| +pickle: | |||
| + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle | |||
| + @echo | |||
| + @echo "Build finished; now you can process the pickle files." | |||
| + | |||
| +.PHONY: json | |||
| +json: | |||
| + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json | |||
| + @echo | |||
| + @echo "Build finished; now you can process the JSON files." | |||
| + | |||
| +.PHONY: htmlhelp | |||
| +htmlhelp: | |||
| + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp | |||
| + @echo | |||
| + @echo "Build finished; now you can run HTML Help Workshop with the" \ | |||
| + ".hhp project file in $(BUILDDIR)/htmlhelp." | |||
| + | |||
| +.PHONY: qthelp | |||
| +qthelp: | |||
| + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp | |||
| + @echo | |||
| + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ | |||
| + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" | |||
| + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/M-LOOP.qhcp" | |||
| + @echo "To view the help file:" | |||
| + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/M-LOOP.qhc" | |||
| + | |||
| +.PHONY: applehelp | |||
| +applehelp: | |||
| + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp | |||
| + @echo | |||
| + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." | |||
| + @echo "N.B. You won't be able to view it unless you put it in" \ | |||
| + "~/Library/Documentation/Help or install it in your application" \ | |||
| + "bundle." | |||
| + | |||
| +.PHONY: devhelp | |||
| +devhelp: | |||
| + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp | |||
| + @echo | |||
| + @echo "Build finished." | |||
| + @echo "To view the help file:" | |||
| + @echo "# mkdir -p $$HOME/.local/share/devhelp/M-LOOP" | |||
| + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/M-LOOP" | |||
| + @echo "# devhelp" | |||
| + | |||
| +.PHONY: epub | |||
| +epub: | |||
| + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub | |||
| + @echo | |||
| + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." | |||
| + | |||
| +.PHONY: epub3 | |||
| +epub3: | |||
| + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 | |||
| + @echo | |||
| + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." | |||
| + | |||
| +.PHONY: latex | |||
| +latex: | |||
| + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex | |||
| + @echo | |||
| + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." | |||
| + @echo "Run \`make' in that directory to run these through (pdf)latex" \ | |||
| + "(use \`make latexpdf' here to do that automatically)." | |||
| + | |||
| +.PHONY: latexpdf | |||
| +latexpdf: | |||
| + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex | |||
| + @echo "Running LaTeX files through pdflatex..." | |||
| + $(MAKE) -C $(BUILDDIR)/latex all-pdf | |||
| + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." | |||
| + | |||
| +.PHONY: latexpdfja | |||
| +latexpdfja: | |||
| + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex | |||
| + @echo "Running LaTeX files through platex and dvipdfmx..." | |||
| + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja | |||
| + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." | |||
| + | |||
| +.PHONY: text | |||
| +text: | |||
| + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text | |||
| + @echo | |||
| + @echo "Build finished. The text files are in $(BUILDDIR)/text." | |||
| + | |||
| +.PHONY: man | |||
| +man: | |||
| + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man | |||
| + @echo | |||
| + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." | |||
| + | |||
| +.PHONY: texinfo | |||
| +texinfo: | |||
| + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo | |||
| + @echo | |||
| + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." | |||
| + @echo "Run \`make' in that directory to run these through makeinfo" \ | |||
| + "(use \`make info' here to do that automatically)." | |||
| + | |||
| +.PHONY: info | |||
| +info: | |||
| + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo | |||
| + @echo "Running Texinfo files through makeinfo..." | |||
| + make -C $(BUILDDIR)/texinfo info | |||
| + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." | |||
| + | |||
| +.PHONY: gettext | |||
| +gettext: | |||
| + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale | |||
| + @echo | |||
| + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." | |||
| + | |||
| +.PHONY: changes | |||
| +changes: | |||
| + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes | |||
| + @echo | |||
| + @echo "The overview file is in $(BUILDDIR)/changes." | |||
| + | |||
| +.PHONY: linkcheck | |||
| +linkcheck: | |||
| + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck | |||
| + @echo | |||
| + @echo "Link check complete; look for any errors in the above output " \ | |||
| + "or in $(BUILDDIR)/linkcheck/output.txt." | |||
| + | |||
| +.PHONY: doctest | |||
| +doctest: | |||
| + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest | |||
| + @echo "Testing of doctests in the sources finished, look at the " \ | |||
| + "results in $(BUILDDIR)/doctest/output.txt." | |||
| + | |||
| +.PHONY: coverage | |||
| +coverage: | |||
| + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage | |||
| + @echo "Testing of coverage in the sources finished, look at the " \ | |||
| + "results in $(BUILDDIR)/coverage/python.txt." | |||
| + | |||
| +.PHONY: xml | |||
| +xml: | |||
| + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml | |||
| + @echo | |||
| + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." | |||
| + | |||
| +.PHONY: pseudoxml | |||
| +pseudoxml: | |||
| + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml | |||
| + @echo | |||
| + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." | |||
| + | |||
| +.PHONY: dummy | |||
| +dummy: | |||
| + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy | |||
| + @echo | |||
| + @echo "Build finished. Dummy builder generates no files." | |||
Oops, something went wrong.
0 comments on commit
0b3fbf8