Giter Site home page Giter Site logo

tensorcro's Introduction

TensorCRO: A Tensorflow-based implementation of the Coral Reef Optimization algorithm.

Table of contents

  1. About
  2. What's new?
  3. Install
  4. Usage

About

Implementation author:     A.Palomo-Alonso ([email protected]) 
Original Algorithm author: S.Salcedo-Sanz  ([email protected])
Universidad de Alcalá (Madrid - Spain). Escuela Politécnica Superior
Signal Processing and Communications Department (TDSC)

This is a Tensorflow-based implementation of the Coral Reef Optimization algorithm. The algorithm is implemented as a Tensorflow graph, which allows to run it in GPU and TPU. The algorithm is implemented as a set of substrate layers that can be combined with other algorithms such as Differential Evolution, Harmony Search and Random Search. The framework also allows to implement crossover operators as blxalpha, gaussian, uniform, masked and multipoint.

The framework also includes a Jupyter Notebook with an example of use of the algorithm.

What's new?

1.0.0

  1. First release.
  2. CRO-SL: Coral Reef Optimization algorithm with substrate layers.
  3. GPU runnable: The algorithm can be run in GPU and TPU as a graph, with +``x2` speed-up over the conventional implementations.
  4. Substrate crossovers: The framework allows to implement crossover operators as blxalpha, gaussian, uniform, masked and multipoint.
  5. Algorithms: The framework allows to implement algorithms as substrate layers such as Differential Evolution, Harmony Search and Random Search.
  6. Watch Replay: The algorithm also allows to watch the replay of the solutions found in the training process, with an interactive GUI.
  7. Jupyter Notebook: The framework includes a Jupyter Notebook with example of use for the Max-Ones-From-Zeros problem.

1.2.0

  1. Progress bar: The framework now also includes a progress bar to monitor the training process.
  2. Minor bug fixing.
  3. Jupyter Notebook: The framework includes a Jupyter Notebook with example of use for the Max-Ones-From-Zeros problem.

1.2.1

  1. Major bug fixing.
  2. Auto-format of parameter specs.

1.3.0

  1. Major bug fixing.
  2. Now the fitness function can be a non-compilable function.
  3. Now you can watch the training process while running.
  4. The initialization of the reef now only take alive corals as inputs. (Major bug)

2.0.0

  1. Major bug fixing.
  2. Added new optimization algorithms as substrates: PSO and SA.
  3. Now TensorCRO can implement any stateful optimization algorithm as a substrate as long as it does not require fitness evaluations.
  4. Sharding rework: Now shards parameter in fit() method is the number of divisions of the optimization method.
  5. Implemented callbacks feature: callable after each shard.
  6. Minimization bug fix.
  7. Optional compilation of fitness function.
  8. Notebook tutorial update.
  9. Added autoclip after calling substrates.

2.1.0

  1. Implemented SlackBot, a real-time monitoring tool for TensorCRO and backup tool for the results.

2.2.0

  1. Now Mutation is normalized to the range of the parameter specs.
  2. Installation bug fixing (tmp not included for warch replay)

2.2.2

  1. Solved fig bug for slackbot.

2.3.0

  • Adding new algorithms as substrates:
  1. EDA substrate added.
  2. Energy reduction substrate added.
  3. Energy augmentation substrate added.
  4. Piece loss substrate added.
  5. Piece gain substrate added.
  6. Coordinate descent substrate added.
  7. Added permutation crossover substrate.
  • Added new callback for fitness tracing.

3.2.1

  1. Major bug fixing.
  2. Module access bug fixing.
  3. Updated to stable version.
  4. Permutation not working on compile, set up as experimental.
  5. Mutation bug fix, clipping output.

Install

To install it you must install the dependencies. Then, you can install the package with the following command using PIP:

pip install tensorcro

Or you can clone the repository and install it with the following commands using Git:

git clone https://github.com.iTzAlver/TensorCRO.git
cd TensorCRO/dist/
pip install ./tensorcro-1.2.0-py3-none-any.whl

Requirements

  • Python 3.6 or higher
  • Tensorflow 2.0 or higher
  • Numpy 1.18.1 or higher
  • Matplotlib 3.1.3 or higher
  • Pandas 1.0.1 or higher
  • CUDA for GPU support (optional but strongly recommended)

Usage:

We have a JuPyter Notebook with an example of use of the algorithm. You can find it in the folder /multimedia/notebooks of the repository.

Cite:

If you use this code, please cite the following paper:

@inproceedings{palomo2023tensorcro,
  title={TensorCRO: A Tensorflow-based implementation of the Coral Reef Optimization algorithm},
  author={Palomo-Alonso, A and García, V and Salcedo-Sanz, S},
  journal={arXiv preprint arXiv:X.Y},
  year={2023}
}

tensorcro's People

Contributors

itzalver avatar vgarciasc avatar

Stargazers

 avatar Adrian Garrido avatar Eugenio Lorente avatar  avatar  avatar  avatar

Watchers

Kostas Georgiou avatar  avatar

Forkers

vgarciasc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.