Git Product home page Git Product logo

l2l's People

Contributors

alperyeg avatar anandtrex avatar brenthuisman avatar chanokin avatar delavlag avatar dhaho avatar dsalaj avatar franzscherr avatar guillaumebellec avatar hannamohr avatar jakobj avatar jowilhelm avatar krisdamato avatar maharjun avatar neich avatar niksq avatar sdiazpier avatar vevenom avatar wasab95 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

l2l's Issues

Create automated testing for L2L

  • Define a set of basic functional requirements

  • Adapt already existing optimizee examples to a test unit which explores the functional requirements

  • Add support for all optimizers

Add CI to L2L

After the automated tests are up we can add CI to L2L

Check parameter instantiation

In the optimizer the parameter naming is not standardized due to the namedtuple parameters and the class arguments. There should be an easier way to create parameters.

Graphical abstract for the trajectory

Create a view on the trajcetory for cleaning up purposes.

  • Create a visual representation for the object to see where the data is stored
  • Remove redundancies
  • improve data access

Refactoring of logging

This is a collection issue for the logging refactoring task.

  1. Standardize log file location: make it configurable on installation
  2. A single log per run
  3. At end of generation add all optimizee logs to a single large logfile
    a. Keep the individual logfiles
  4. Create easy to parse log line format
  5. Check all loglines for informative contect
  6. Add 'ids' to logline to add additional information

Check the loggers

Verify where the logging information is being stored and make it consistent through the whole framework.

Have a single trajectory for all individuals

Currently each individual has their own trajectory file where the Individual is the parameter set that they will execute. This should be changed so that only one trajectory exists.

  • Change the way the trajectory is pickled
  • Change the way the trajectory and the individual are loaded by the optimizee
  • Update the trajectory with the results and HOF/ other data to be preserved after each generation

check logger

Logger facilities should be checked and made homogeneous. For example a yaml file is used to configure the logger, but most of the cases the logger file is set from the run script without any additional files.

Enhance the debugging capabilities

It is not possible to debug the optimizee while the program is executed. Only a single instance alone can be debugged (using main) without the l2l process. That means the outer loop cannot be applied to see the optimization.

Investigate logfile usage L2L

Find out how logfiles are produced in L2L.
Check if important information is logged.

find out important messages and start thinking about the regex to parse

Add to the quickstart guide the explicit warning that the exec function should be checked

I spend the last two days debugging the deployment of Jube.

It ended up being caused by the exec line not being correct. Given that this is an extremely essential step and we can expect that a lot of user will come from Ubuntu. This should be solved.

I would also suggest to add a unit test in the framework testing this behavior.
Currently the tests fail silently if this happens. Having a dedicated test running a small exec with the supplied config would fail with a clear suggestion how to fix the problem

When a optimizee fails the optimizer hangs

I encountered the challenge that when an optimizee fails due to 'reasons'. The outer loop hangs on the existing of a file that would be created by the optimizee.
This is not optimal behaviour

Line 220ish in JUBE_runner.py

` # Wait for ready files to be written

    while not self.is_done(ready_files):

        time.sleep(5)`

Reduce boiler plate code

For example in the runner/main scripts similar code is copied from one runner to the other. Are there ways to reduce this overhead? Links also to issue #4

[Bug?] KeyError: 'paths_obj' in JUBE_runner.py

We're running into an issue with L2L master (as of time of posting). We've written an optimizee, but an error is generated when we try to run the optimization:

Traceback (most recent call last):
  File "model.py", line 180, in <module>
    main()
  File "model.py", line 173, in main
    env.run(optimizee.simulate)
  File "/home/brent/.local/lib/python3.8/site-packages/Learning_to_Learn-1.0.0b0-py3.8.egg/l2l/utils/environment.py", line 45, in run
  File "/home/brent/.local/lib/python3.8/site-packages/Learning_to_Learn-1.0.0b0-py3.8.egg/l2l/utils/JUBE_runner.py", line 53, in __init__
KeyError: 'paths_obj'

Not 100% sure if it's the source for the error, but we set the paths thus:

    root_dir_path = "."
    paths = Paths(name, dict(run_no='test'), root_dir_path=root_dir_path)
    traj.f_add_parameter_to_group("JUBE_params", "paths", paths)

Basically copied from one of the examples. Any idea what's going wrong? There is an optimizee.bin created in the path you might expect, so it seems the paths_obj is succesfully used somewhere.

Our code: https://github.com/brenthuisman/l2l-arbor
We use L2L @ master and https://github.com/Meta-optimization/JUBE @ master.

Check if the conversions between list and dicts are done correctly

Often the fitness function is delivered as a dictionary, depending on the optimizer a list may be required. In the process of converting between lists and dictionaries errors may occur. We should check if the conversions are needed and if they are done correctly.

Fix or remove matplotlib

Since matplotlib is not in the requirements anymore we should remove any existing pieces of code of matplotlib. It can affects the run of some examples. If the removal breaks something, we need to fix it in an other way.

Improve the documentation

Provide also examples. Step by step tutorial (e.g. how to write the optimizee and integrate it) A collab or jupyter notebook would be interesting.

`path.conf`should be a string not a file

When starting the script a config file, path.conf is required which sets the path to the results. This should be a string, instead a config file. Additionally the path should be checked a directory should be added if the folder is missing.

Deploy Elastic stack VMs on JUSUF

  • JUSUF cloud: create instances, volumes and network settings
  • Issue (02.11.2020): ssh forwarding not working properly -- can't access ES-nodes
    -- temporary solution: allocated floating IPs for all instances
  • Deployment / Installation
    • CentOS: update
    • Install java, add repositories, add certificates
    • Install ELK stack
  • Wednesday, Nov 4th:
    • Issues with JUSUF-Cloud networks --> admins in contact with RedHat
    • Configuration of ELK (when issues are resolved)
    • Install/Deploy Filebeat and Metribeat on edge machines and test monitoring
  • Thursday, Nov 5th:
  • Friday, Nov 6th:
    • installed filebeat, configured it, tested locally
    • logging of custom logfiles possible
    • logging onthe supercomputer not possible yet

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.