Distributed Asynchronous Hyperparameter Optimization in Python

Overview

Hyperopt: Distributed Hyperparameter Optimization

Build Status PyPI version Anaconda-Server Badge

Hyperopt is a Python library for serial and parallel optimization over awkward search spaces, which may include real-valued, discrete, and conditional dimensions.

Getting started

Install hyperopt from PyPI

$ pip install hyperopt

to run your first example

# define an objective function
def objective(args):
    case, val = args
    if case == 'case 1':
        return val
    else:
        return val ** 2

# define a search space
from hyperopt import hp
space = hp.choice('a',
    [
        ('case 1', 1 + hp.lognormal('c1', 0, 1)),
        ('case 2', hp.uniform('c2', -10, 10))
    ])

# minimize the objective over the space
from hyperopt import fmin, tpe, space_eval
best = fmin(objective, space, algo=tpe.suggest, max_evals=100)

print(best)
# -> {'a': 1, 'c2': 0.01420615366247227}
print(space_eval(space, best))
# -> ('case 2', 0.01420615366247227}

Contributing

Setup (based on this)

If you're a developer and wish to contribute, please follow these steps:

  1. Create an account on GitHub if you do not already have one.

  2. Fork the project repository: click on the ‘Fork’ button near the top of the page. This creates a copy of the code under your account on the GitHub user account. For more details on how to fork a repository see this guide.

  3. Clone your fork of the hyperopt repo from your GitHub account to your local disk:

    $ git clone https://github.com/<github username>/hyperopt.git
    $ cd hyperopt

Setup a python 3.x environment for dependencies

  1. Create environment with:
    $ python3 -m venv my_env or $ python -m venv my_env or with conda:
    $ conda create -n my_env python=3

  2. Activate the environment:
    $ source my_env/bin/activate
    or with conda:
    $ conda activate my_env

  3. Install dependencies for extras (you'll need these to run pytest): Linux/UNIX: $ pip install -e '.[MongoTrials, SparkTrials, ATPE, dev]'

    or Windows:

    pip install -e .[MongoTrials]
    pip install -e .[SparkTrials]
    pip install -e .[ATPE]
    pip install -e .[dev]
  4. Add the upstream remote. This saves a reference to the main hyperopt repository, which you can use to keep your repository synchronized with the latest changes:

    $ git remote add upstream https://github.com/hyperopt/hyperopt.git

    You should now have a working installation of hyperopt, and your git repository properly configured. The next steps now describe the process of modifying code and submitting a PR:

  5. Synchronize your master branch with the upstream master branch:

    $ git checkout master
    $ git pull upstream master
  6. Create a feature branch to hold your development changes:

    $ git checkout -b my_feature

    and start making changes. Always use a feature branch. It’s good practice to never work on the master branch!

Formatting

  1. We recommend to use Black to format your code before submitting a PR which is installed automatically in step 4.

  2. Then, once you commit ensure that git hooks are activated (Pycharm for example has the option to omit them). This will run black automatically on all files you modified, failing if there are any files requiring to be blacked. In case black does not run execute the following:

    $ black {source_file_or_directory}
  3. Develop the feature on your feature branch on your computer, using Git to do the version control. When you’re done editing, add changed files using git add and then git commit:

    $ git add modified_files
    $ git commit -m "my first hyperopt commit"

Running tests

  1. The tests for this project use PyTest and can be run by calling pytest.

  2. Record your changes in Git, then push the changes to your GitHub account with:

    $ git push -u origin my_feature

Note that dev dependencies require python 3.6+.

Algorithms

Currently three algorithms are implemented in hyperopt:

Hyperopt has been designed to accommodate Bayesian optimization algorithms based on Gaussian processes and regression trees, but these are not currently implemented.

All algorithms can be parallelized in two ways, using:

Documentation

Hyperopt documentation can be found here, but is partly still hosted on the wiki. Here are some quick links to the most relevant pages:

Related Projects

Examples

See projects using hyperopt on the wiki.

Announcements mailing list

Announcements

Discussion mailing list

Discussion

Cite

If you use this software for research, please cite the paper (http://proceedings.mlr.press/v28/bergstra13.pdf) as follows:

Bergstra, J., Yamins, D., Cox, D. D. (2013) Making a Science of Model Search: Hyperparameter Optimization in Hundreds of Dimensions for Vision Architectures. TProc. of the 30th International Conference on Machine Learning (ICML 2013), June 2013, pp. I-115 to I-23.

Thanks

This project has received support from

  • National Science Foundation (IIS-0963668),
  • Banting Postdoctoral Fellowship program,
  • National Science and Engineering Research Council of Canada (NSERC),
  • D-Wave Systems, Inc.
Comments
  • Replace pickle with dill

    Replace pickle with dill

    Dill is better at pickling (among other things) functions than pickle

    Pickle is bad at pickling functions. In fact in order to pickle a function one is forced to resolve to some hack (e.g. creating a class with a __call__ property), whereas dill can pickle the function effortlessly.

    This PR makes it much less tedious to write objective functions to pass into mongoExp.

    opened by jakebian 27
  • hp.quniform giving float values for integer range.

    hp.quniform giving float values for integer range.

    When using hyperopt for optimizing XGBoost it throws error. XGBoostError: b"Invalid Parameter format for max_depth expect int but value='4.0'"

    I have set range as {'max_depth': hp.quniform('max_depth', 1, 13, 1),}

    opened by muditbac 22
  • ATPE RuntimeError: The reset parameter is False but there is no n_features_in_ attribute

    ATPE RuntimeError: The reset parameter is False but there is no n_features_in_ attribute

    Version: 0.2.4 I'm trying to optimise a KNN algorithm using Adaptive TPE. Here's a snippet of the code I'm running

    KNN_DEFAULT_SPACE = {
        'k': scope.int(hp.quniform('k', 1, 500, 1)),
        'min_k': scope.int(hp.quniform('min_k', 1, 50, 1))
    }
    
    def _knn_algo(params):
         # Run KNN with params and crossvalidate to return loss
         return loss
    
    def _objective(params):
        loss = _knn_algo(params)
    
        return {
            'loss': loss,
            'status': STATUS_OK,
            'hyperparams': params
        }
    
    trials = Trials()
    
    best = fmin(
                objective,
                KNN_DEFAULT_SPACE,
                algo=atpe.suggest,
                max_evals=100,
                trials=trials,
            )
    

    The first 10 initialization rounds run fine. However after that I run into this exception

     File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/fmin.py", line 482, in fmin
        show_progressbar=show_progressbar,
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/base.py", line 686, in fmin
        show_progressbar=show_progressbar,
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/fmin.py", line 509, in fmin
        rval.exhaust()
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/fmin.py", line 330, in exhaust
        self.run(self.max_evals - n_done, block_until_done=self.asynchronous)
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/fmin.py", line 266, in run
        new_ids, self.domain, trials, self.rstate.randint(2 ** 31 - 1)
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/atpe.py", line 1613, in suggest
        hyperparameterConfig, results, currentTrials=[]
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/hyperopt/atpe.py", line 763, in recommendNextParameters
        transformed = scalingModel.transform([[stats[feature]]])[0][0]
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/sklearn/preprocessing/_data.py", line 794, in transform
        force_all_finite='allow-nan')
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/sklearn/base.py", line 436, in _validate_data
        self._check_n_features(X, reset=reset)
      File "/home/rohan/auto-surprise-venv/lib/python3.6/site-packages/sklearn/base.py", line 373, in _check_n_features
        "The reset parameter is False but there is no "
    RuntimeError: The reset parameter is False but there is no n_features_in_ attribute. Is this estimator fitted?
    

    It seems that the issue arises when transforming the scaling model. Any ideas on the exact reason for this?

    Thanks in advance

    opened by thededlier 14
  • Got

    Got "TypeError: 'generator' object is not subscriptable" on my Ubuntu machine

    Hi I'm trining to use your grate lib for tuning hyperparameters for my NN, but for some reason I got this error:

      File "/home/michael/work/oanda/src/oanda/trend_prediction/find_optimal_model.py", line 124, in <module>
        main()
      File "/home/michael/work/oanda/src/oanda/trend_prediction/find_optimal_model.py", line 116, in main
        trials=trials)
      File "/home/michael/work/oanda/runtime/lib/python3.5/site-packages/hyperopt/fmin.py", line 307, in fmin
        return_argmin=return_argmin,
      File "/home/michael/work/oanda/runtime/lib/python3.5/site-packages/hyperopt/base.py", line 635, in fmin
        return_argmin=return_argmin)
      File "/home/michael/work/oanda/runtime/lib/python3.5/site-packages/hyperopt/fmin.py", line 314, in fmin
        pass_expr_memo_ctrl=pass_expr_memo_ctrl)
      File "/home/michael/work/oanda/runtime/lib/python3.5/site-packages/hyperopt/base.py", line 786, in __init__
        pyll.toposort(self.expr)
      File "/home/michael/work/oanda/runtime/lib/python3.5/site-packages/hyperopt/pyll/base.py", line 715, in toposort
        assert order[-1] == expr
    TypeError: 'generator' object is not subscriptable
    

    Everything work nice when I tried it on my mac book but when I start it on my desktop (which I build for NN training) I got this error and don't know what to do.

    Python 3.5.2 Linux michael-ubuntu 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:2

    opened by Michael89 14
  • SparkTrials not working for the below code in python and Trials is working

    SparkTrials not working for the below code in python and Trials is working

    `search_space = {'alpha':hp.choice('alpha',[10**x for x in range(-1,2)]) ,'penalty':hp.choice('penalty',['l1']), 'loss':hp.choice('loss',['hinge']) } #from hyperopt import Trials spark_trials = SparkTrials(parallelism=2)

    best = fmin(fn=opt_alpha_sgd_para, space=search_space, algo=tpe.suggest, max_evals=16, trials = spark_trials #,return_argmin=False )`

    This is my objective function: `def opt_alpha_sgd_para(search_space):

    clf = SGDClassifier(alpha=search_space['alpha'], penalty=search_space['penalty'],loss=search_space['loss'], random_state=42) clf.fit(X_train,Y_train) sig_clf = CalibratedClassifierCV(clf, method='sigmoid') sig_clf.fit(X_train,Y_train) #Predicting Y with test data Y_predict = sig_clf.predict_proba(X_test) #calculating log-loss #no need to store the log error as hyperopt default stores it log_error = log_loss(Y_test,Y_predict, labels = clf.classes_, eps = 1e-15)

    #below don't change the 'loss' to anyother as its used by fmin or anyother hyperopt functions. return {'loss' : log_error, 'status' : STATUS_OK}`

    opened by VinodKumar9576 13
  • new tutorial init: 02. MultipleParameterTutorial

    new tutorial init: 02. MultipleParameterTutorial

    Create a second tutorial. Please review, thank you.

    https://github.com/hyperopt/hyperopt/blob/dev-tutorial/tutorial/02.MultipleParameterTutorial.ipynb

    opened by marload 12
  • Line 399: Error message:

    Line 399: Error message: "module 'bson' has no attribute 'BSON'"

    Hi all,

    I am working on a machine learning project, and using the Hyperas package to tune my model. Hyperas uses two functions to setup a tuning job: a data function, and model function. So far I've had some issues with them talking to each other during the encoding stage of building the model because the bson.BSON object called in hyperopt/base.py does not exist.

    I ended up checking out the bson code found here: https://github.com/py-bson/bson, and the bson.BSON object does not exist there either. Is there a different bson distribution or package that I should be using?


    Notes:

    • I'm using an AWS SageMaker notebook, that could also have something to do with bson being imported weirdly behind the scenes.
    • A somewhat related issue: https://github.com/maxpumperla/hyperas/issues/23

    Thanks!

    opened by rossmpowell 12
  • Use dill for pickling if available.

    Use dill for pickling if available.

    As described here: https://github.com/jaberg/hyperopt/issues/131

    Passing a non-lambda function to fmin() with the mongo backend doesn't work as cPickle can't pickle functions. Dill, however (https://github.com/uqfoundation/dill) provides a pickle-like interface that makes this possible.

    To remain backwards compatibility if dill is not installed I implemented a fall-back mechanism.

    opened by twiecki 12
  • Timeout parameter to limit time (in seconds) of the search process (fmin)

    Timeout parameter to limit time (in seconds) of the search process (fmin)

    max_time parameter was added to fmin:

    • stops searching process when allowed time is passed, works similar to max_evals parameter, but limits time of search instead of number of trials
    • can work together with max_evals
    • max_time=60 means that search process will be stopped after 60 seconds since its start with respect to last trial (if trial requires 10 seconds and it was started at second 59, then search process takes 69 second)
    • unit tests were prepared to check new parameter
    • progress bar was not changed (it works based on number of trials)

    Update 11 Dec 2019:

    • max_time parameter was renamed to timeout to keep consistency with recent update
    • timeout parameter was added to fmin function for spark implementation as well (to keep configuration of timeout and max_evals in one place)
    opened by vladkar 11
  • progressbar with tqdm

    progressbar with tqdm

    I added the progressbar. See #454 It can not be turned off and is on by default. But I can add this if wanted.

    The progressbar also shows the best (lowest loss).

    Would be happy for feedback.

    Philip

    opened by PhilipMay 11
  • MongoDB not working when an objective function is passed

    MongoDB not working when an objective function is passed

    When I was using this built in function directly, mongoDB was working fine:

    import math
    from hyperopt import fmin, tpe, hp
    from hyperopt.mongoexp import MongoTrials
    
    trials = MongoTrials('mongo://localhost:27017/f_db/jobs', exp_key='exp1')
    
    best = fmin(math.sin, hp.uniform('x', -2, 2), trials=trials, algo=tpe.suggest, max_evals=100)
    
    print best
    
    

    But when I created an objective function like this:

    import math
    from hyperopt import fmin, tpe, hp
    from hyperopt.mongoexp import MongoTrials
    
    def obj(arg):
    	return math.sin(arg)
    
    trials = MongoTrials('mongo://localhost:27017/f_db/jobs', exp_key='exp2')
    
    best = fmin(obj, hp.uniform('x', -2, 2), trials=trials, algo=tpe.suggest, max_evals=100)
    
    print best
    
    print "total time:",t_time
    

    also, dill is installed!

    These are the error while using the second method:

    INFO:hyperopt.mongoexp:Error while unpickling. Try installing dill via "pip install dill" for enhanced pickling support.
    
    AttributeError: 'module' object has no attribute 'obj'
    

    I am guessing the issue is with pickling the function or something.

    opened by tanayag 11
  • hp.choice with list of strings return index but internally it uses strings

    hp.choice with list of strings return index but internally it uses strings

    My search space looks like that

    impurity_types = ['gini', 'entropy']
    
    search_space = {
         'impurity': hp.choice('impurity', ['gini', 'entropy'])
    }
    

    In objective function it uses strings directly, I was getting error when I tried to pass this parameter to model like that impurity_types[params['impurity']] passing is as params['impurity'] works, but in dictionary returned by fmin it's {'impurity': 0}

    it's confusing because when I want to fit final model with best hyperparameters I need to pass them in a different way than I did in objective function

    opened by gozdi29 0
  • Bug: atpe Exception: assert np.all(sigma > 0) fail in adaptive_normal_parzen in tpe.py

    Bug: atpe Exception: assert np.all(sigma > 0) fail in adaptive_normal_parzen in tpe.py

    My fmin call generates the following exception on line 456 in adaptive_normal_parzen: AssertionError: (nan, 0.32894072757057796, 9.210340371976184). I've traced this error back a few levels to -inf values in the memo variable of rec_eval() in base.py. Looking at my trials variable shows no invalid values for ['result']['loss'] or ['result']['loss_variance'] and so I suspect they are being generated from hyperopt code.

    I do use generate_trials_to_calculate() to set an initial set of default parameters to evaluate and I'm not sure I did it correctly because doing so required me to specify values for parameters that are inactive due to choice parameter values. Also, if that were the problem I would expect the issue to show up sooner than on the 57th set of parameters.

    I'm using hyperopt 0.2.7.

    opened by DWDuq 0
  • [Feature] Support SparkTrials for SparkML models

    [Feature] Support SparkTrials for SparkML models

    Hi team,

    Now SparkTrials only supports running single-machine training algorithms, so we can only train SparkML models in series instead of in parallel. I think if we could support training distributed training algorithms in parallel that would satisfy a lot of users' needs. I investigated a bit on hyperopt's source code of SparkTrials, and have tested my changes for supporting this locally. I'm wondering what's the contributing process for this and what do you think about this feature request? If you have any concerns, please let me know and we could also have a discussion. If you think this is a reasonable request, then could I go ahead and raise a PR for review?

    Thanks!

    opened by serena-ruan 13
  • "TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe'" using

    I am trying to use the atpe algo for a hyper-parameter optimization problem. However, everytime after the 10th trial I get the following error. I used the same set-up/internal function for a different hyper-parameter problem and it all works fine:

    here is the hyper-parameter space and the function call:

        hp_space={
            "learning_rate": hp.loguniform('learning_rate', -12, -3),
            "dropout": hp.uniform('dropout', 0, 0.7),
            "layers": hp.randint('layers', 2, 12),
            "l_1": hp.loguniform('l_1', -6, -0.1),
            "l_2": hp.loguniform('l_2', -6, -0.1),
            "hidden_units": hp.randint('hidden_units', 150, 350),
            "optimizer": hp.randint('optimizer', 0, 5),
        }
    
        trials = Trials()
        opt_parameter = fmin(fn=opt_fun, space=hp_space, algo=atpe.suggest,
                             max_evals=100, trials=trials)
    
    
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 540, in fmin
        return trials.fmin(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/base.py", line 671, in fmin
        return fmin(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 586, in fmin
        rval.exhaust()
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 364, in exhaust
        self.run(self.max_evals - n_done, block_until_done=self.asynchronous)
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 278, in run
        new_trials = algo(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/atpe.py", line 1603, in suggest
        parameters = optimizer.recommendNextParameters(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/atpe.py", line 1201, in recommendNextParameters
        hyperopt.fmin(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 540, in fmin
        return trials.fmin(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/base.py", line 671, in fmin
        return fmin(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 586, in fmin
        rval.exhaust()
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 364, in exhaust
        self.run(self.max_evals - n_done, block_until_done=self.asynchronous)
      File "/usr/local/lib/python3.9/site-packages/hyperopt/fmin.py", line 278, in run
        new_trials = algo(
      File "/usr/local/lib/python3.9/site-packages/hyperopt/tpe.py", line 935, in suggest
        idxs, vals = pyll.rec_eval(posterior, memo=memo, print_node_on_error=False)
      File "/usr/local/lib/python3.9/site-packages/hyperopt/pyll/base.py", line 902, in rec_eval
        rval = scope._impls[node.name](*args, **kwargs)
      File "/usr/local/lib/python3.9/site-packages/hyperopt/pyll/base.py", line 1051, in bincount
        return np.bincount(y - offset, weights, minlength)
      File "<__array_function__ internals>", line 180, in bincount
    TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe'
    
    

    Issue might be related to #450

    opened by MMCMA 0
  • run hyperopt with mongoDB on a Load Sharing Facility (bsub)

    run hyperopt with mongoDB on a Load Sharing Facility (bsub)

    I want to run hyperopt with mongoDB on a Load Sharing Facility (bsub) with ~30 hosts.

    The hyperopt can connect MongoDB successfully. However, the hyperopt-mongo-worker can not connect MongoDB via ssh`.

    I found a simple way to solve the problem: in mongoexp.py line 1275: change current_mongo_str to "ssh+" + current_mongo_str and run hyperopt-mongo-worker with --no-subprocesses.

    opened by phyzhenli 0
DeepHyper: Scalable Asynchronous Neural Architecture and Hyperparameter Search for Deep Neural Networks

What is DeepHyper? DeepHyper is a software package that uses learning, optimization, and parallel computing to automate the design and development of

DeepHyper Team 214 Jan 8, 2023
Keras + Hyperopt: A very simple wrapper for convenient hyperparameter optimization

This project is now archived. It's been fun working on it, but it's time for me to move on. Thank you for all the support and feedback over the last c

Max Pumperla 2.1k Jan 3, 2023
optimization routines for hyperparameter tuning

Optunity is a library containing various optimizers for hyperparameter tuning. Hyperparameter tuning is a recurrent problem in many machine learning t

Marc Claesen 398 Nov 9, 2022
Hyperparameter Optimization for TensorFlow, Keras and PyTorch

Hyperparameter Optimization for Keras Talos • Key Features • Examples • Install • Support • Docs • Issues • License • Download Talos radically changes

Autonomio 1.6k Dec 15, 2022
Automated Hyperparameter Optimization Competition

QQ浏览器2021AI算法大赛 - 自动超参数优化竞赛 ACM CIKM 2021 AnalyticCup 在信息流推荐业务场景中普遍存在模型或策略效果依赖于“超参数”的问题,而“超参数"的设定往往依赖人工经验调参,不仅效率低下维护成本高,而且难以实现更优效果。因此,本次赛题以超参数优化为主题,从真

null 20 Dec 9, 2021
HyperaPy: An automatic hyperparameter optimization framework ⚡🚀

hyperpy HyperPy: An automatic hyperparameter optimization framework Description HyperPy: Library for automatic hyperparameter optimization. Build on t

Sergio Mora 7 Sep 6, 2022
A Lightweight Hyperparameter Optimization Tool 🚀

Lightweight Hyperparameter Optimization ?? The mle-hyperopt package provides a simple and intuitive API for hyperparameter optimization of your Machin

null 136 Jan 8, 2023
2021-AIAC-QQ-Browser-Hyperparameter-Optimization-Rank6

2021-AIAC-QQ-Browser-Hyperparameter-Optimization-Rank6

Aigege 8 Mar 31, 2022
DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.

DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.

Microsoft 8.4k Jan 1, 2023
Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286

Pytorch-DPPO Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286 Using PPO with clip loss (from https

Alexis David Jacq 163 Dec 26, 2022
A web-based application for quick, scalable, and automated hyperparameter tuning and stacked ensembling in Python.

Xcessiv Xcessiv is a tool to help you create the biggest, craziest, and most excessive stacked ensembles you can think of. Stacked ensembles are simpl

Reiichiro Nakano 1.3k Nov 17, 2022
Racing line optimization algorithm in python that uses Particle Swarm Optimization.

Racing Line Optimization with PSO This repository contains a racing line optimization algorithm in python that uses Particle Swarm Optimization. Requi

Parsa Dahesh 6 Dec 14, 2022
Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differential Evolution and TSP(Traveling salesman)

scikit-opt Swarm Intelligence in Python (Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Algorithm, Immune Algorithm,A

郭飞 3.7k Jan 3, 2023
library for nonlinear optimization, wrapping many algorithms for global and local, constrained or unconstrained, optimization

NLopt is a library for nonlinear local and global optimization, for functions with and without gradient information. It is designed as a simple, unifi

Steven G. Johnson 1.4k Dec 25, 2022
MiraiML: asynchronous, autonomous and continuous Machine Learning in Python

MiraiML Mirai: future in japanese. MiraiML is an asynchronous engine for continuous & autonomous machine learning, built for real-time usage. Usage In

Arthur Paulino 25 Jul 27, 2022
Code for the ECCV2020 paper "A Differentiable Recurrent Surface for Asynchronous Event-Based Data"

A Differentiable Recurrent Surface for Asynchronous Event-Based Data Code for the ECCV2020 paper "A Differentiable Recurrent Surface for Asynchronous

Marco Cannici 21 Oct 5, 2022
Code and datasets for the paper "Combining Events and Frames using Recurrent Asynchronous Multimodal Networks for Monocular Depth Prediction" (RA-L, 2021)

Combining Events and Frames using Recurrent Asynchronous Multimodal Networks for Monocular Depth Prediction This is the code for the paper Combining E

Robotics and Perception Group 69 Dec 26, 2022
Asynchronous Advantage Actor-Critic in PyTorch

Asynchronous Advantage Actor-Critic in PyTorch This is PyTorch implementation of A3C as described in Asynchronous Methods for Deep Reinforcement Learn

Reiji Hatsugai 38 Dec 12, 2022