beat issueshttps://gitlab.idiap.ch/groups/beat/-/issues2018-12-17T13:31:50Zhttps://gitlab.idiap.ch/beat/beat.core/-/issues/25Database JSON simplifications2018-12-17T13:31:50ZAndré AnjosDatabase JSON simplificationsJSON for databases are overly cumbersome. They can be largely simplified by removing the view information declaration in favor of formalized templates (as they exist in `beat.web`).JSON for databases are overly cumbersome. They can be largely simplified by removing the view information declaration in favor of formalized templates (as they exist in `beat.web`).https://gitlab.idiap.ch/beat/beat.backend.python/-/issues/8Split beat.core and beat.backend.python2017-08-08T04:40:37ZLaurent EL SHAFEYSplit beat.core and beat.backend.pythonFollowing a discussion with @andre.anjos , few beat.core functionalities need to be in beat.backend.python.
To achieve this, we need to:
1. Move all the relevant code from beat.core to beat.backend.python
2. Make beat.core depends o...Following a discussion with @andre.anjos , few beat.core functionalities need to be in beat.backend.python.
To achieve this, we need to:
1. Move all the relevant code from beat.core to beat.backend.python
2. Make beat.core depends on beat.backend.python
3. Make all packages use features from beat.backend.python (when they were moved from beat.core to beat.backend.python)André AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/465Selecting different options in modal breaks select box2017-08-23T11:36:36ZJaden DIEFENBAUGHSelecting different options in modal breaks select box(See jdiefenbaugh/beat.web#13)
When adding experiments to a report, you are asked to select which report to try to add the experiments to. The first time you select any available report, the report name correctly shows as the "selected"...(See jdiefenbaugh/beat.web#13)
When adding experiments to a report, you are asked to select which report to try to add the experiments to. The first time you select any available report, the report name correctly shows as the "selected" value. However, after a few times of choosing different reports, the selected report name is pushed to the far right, and you can't read it.
Just by playing around in the browser's inspect mode, I was able to fix this issue by changing the raw HTML. Changing the HTML element that contains the selected report name from a `div` to a `span` corrects this - I'm guessing it's because `div`s are not inline by default, while `span`s are.https://gitlab.idiap.ch/beat/beat.editor/-/issues/6compact set name, view, template into one line2017-11-15T16:51:09ZJaden DIEFENBAUGHcompact set name, view, template into one linehttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/15local execution not working anymore2018-10-15T13:32:30ZJaden DIEFENBAUGHlocal execution not working anymoreNo experiments work anymore. The first block to be processed always throws the same error:
```
Running `user/integers_add/1' for block `echo'
Start the execution of 'user/integers_add/1'
Block did not execute properly - outputs were rese...No experiments work anymore. The first block to be processed always throws the same error:
```
Running `user/integers_add/1' for block `echo'
Start the execution of 'user/integers_add/1'
Block did not execute properly - outputs were reset
Standard output:
Standard error:
Captured user error:
File "/home/jae/code/beat.cmdline/src/beat.backend.python/beat/backend/python/loader.py", line 100, in run
return getattr(obj, method)(*args, **kwargs)
RuntimeError: done() takes exactly 1 argument (2 given)
Captured system error:
```
For reference - I'm using Python 2.7 via a conda environment. All packages are updated, and bob is properly installed. I used this env's python to bootstrap the buildout of `beat.cmdline`. The nosetests pass fine.Zohreh MOSTAANIZohreh MOSTAANIhttps://gitlab.idiap.ch/beat/docs/-/issues/6[documentation - day] Proposition2018-12-17T20:55:16ZFlavio TARSETTI[documentation - day] Proposition**List of all the packages on gitlab concerning beat :**
```
beat.tutorial
beat.examples
beat.env.python27
beat.core
beat.deploy
beat.env.web
beat.web
beat.env.develop
beat.cmdline
beat.backend.python
beat.env.backend
beat.env.docker
be...**List of all the packages on gitlab concerning beat :**
```
beat.tutorial
beat.examples
beat.env.python27
beat.core
beat.deploy
beat.env.web
beat.web
beat.env.develop
beat.cmdline
beat.backend.python
beat.env.backend
beat.env.docker
beat.backend.cxx
beat.env.scripts
beat.env.python
beat.env.system.python
beat.env.cxx
beat.env.client
beat.env.db.examples
beat.env.db
beat.env.rankone
beat.editor
weeklies
beat.presentation.technical
ci.env.editor
beat.tutorial.prefix
docs
beat.env.pytorch
```
**List of packages in the aggregated documentation**
```
beat.cmdline
beat.core
beat.backend.python
beat.web
beat.editor
```
From which:
* `beat.core` documentation on _beat.core components_. It's a `User Guide`
* `beat.cmdline` documentation on command-line client. It's a `User Guide`
* `beat.backend.python` documentation on various API aspects. It's an `API Guide`
* `beat.editor` documentation on how to edit _beat objects_. It has an `Installation Guide` and `User Guide` with an additional breakdown on how to edit each objects, and also a `Development Guide`, a possible `API Guide` for the Flask server
* `beat.web` documentation on the platform's architecture. It has an `Administrator Guide` and also an `API Guide` and finally the platform `User Guide`
**Miscellaneous information**
* The information about `how to write algorithms` targets what is now `legacy` and is `not v2 compatible` #5
**Proposition**
* Let's target "ONLY" for now the list of packages from the aggregated documentation (beat.core, beat.cmdline, beat.backend.python, beat.editor, beat.web) with an upper package `beat` which would pin all those packages at a specific version for a proper release.
* We could imagine having a consistent track for each of these packages (I am not sure to what extend this makes sense as beat.cmdline for example doesn't have an API Guide or Development Guide):
* Installation Guide
* User Guide
* API Guide (When required)
* Administrator/Development Guide
**Open questions**
* I was previously in favor of having a `User Guide` for all the packages then an `API Guide` for all of them again, etc. etc. but to what I see this would seem confusing. I would keep the proposition above and we should write more documentation (such as a Development Guide) for all the packages and we should spend time writing a `beat.tutorial` documentation which would regroup all the User Guide of `beat.web`, `beat.cmdline` and `beat.editor` only. Does this make sense ?https://gitlab.idiap.ch/beat/beat.examples/-/issues/5Installation of FRGC, GBU, LFW and NIST SRE2017-10-04T21:58:17ZAndré AnjosInstallation of FRGC, GBU, LFW and NIST SREA request to install the following databases on the platform.
These have to be "hidden" and usable only by us:
- [x] LFW
- [x] NIST SRE
These can be made public (we have authorizations for that):
- [x] FRGC
- [x] GBUA request to install the following databases on the platform.
These have to be "hidden" and usable only by us:
- [x] LFW
- [x] NIST SRE
These can be made public (we have authorizations for that):
- [x] FRGC
- [x] GBUTutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/24Input/Output/Source/Sink concept redesign?2018-08-02T06:31:05ZAndré AnjosInput/Output/Source/Sink concept redesign?The input/output/source/sink concepts should be re-encoded in order to simplify their relationship. Do we really need separated defintions for Input/Source and Output/Sink?The input/output/source/sink concepts should be re-encoded in order to simplify their relationship. Do we really need separated defintions for Input/Source and Output/Sink?https://gitlab.idiap.ch/beat/beat.backend.python/-/issues/7Do not open input/output pipe at each request2017-08-08T04:40:37ZLaurent EL SHAFEYDo not open input/output pipe at each requestAs discussed with @andre.anjos , this would be too inefficient.As discussed with @andre.anjos , this would be too inefficient.Laurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.editor/-/issues/7The object type should be displayed as "dict" instead of "object"2017-11-16T11:24:47ZJaden DIEFENBAUGHThe object type should be displayed as "dict" instead of "object""object" is not a python term and all the users are python users"object" is not a python term and all the users are python usershttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/16Add experiment results plot generation command2018-05-15T13:54:56ZJaden DIEFENBAUGHAdd experiment results plot generation commandI don't see a way to generate~visualize results from successfully-ran experiments outside of pushing the experiment to a `beat.web` installation. This feature seems practically necessary for a easy development cycle.
Maybe add a sub-com...I don't see a way to generate~visualize results from successfully-ran experiments outside of pushing the experiment to a `beat.web` installation. This feature seems practically necessary for a easy development cycle.
Maybe add a sub-command to the experiments or plotters command groups?Flavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/docs/-/issues/7Question about documentation.2018-11-09T16:03:22ZZohreh MOSTAANIQuestion about documentation.Could you please tell me which one of these statements are correct. They are both about the same concept in defining arrays in dataformats.
In beat.core/dataformats/arrays: `An array can have as many dimensions as you want.`
In beat.w...Could you please tell me which one of these statements are correct. They are both about the same concept in defining arrays in dataformats.
In beat.core/dataformats/arrays: `An array can have as many dimensions as you want.`
In beat.web/user/dataformat/arrays: `An array can have up to 32 dimensions.`
Thanks.André AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.editor/-/issues/83BEAT Tutorial2018-05-14T07:45:51ZJaden DIEFENBAUGHBEAT TutorialRough schedule for 3 hour tutorial:
- Introducing BEAT: ~30min
- Ecosystem walkthrough using the Iris dataset: 1hr 15min
- Explaining the experiment and breaking it down conceptually
- Experiment design
- Introduce the ...Rough schedule for 3 hour tutorial:
- Introducing BEAT: ~30min
- Ecosystem walkthrough using the Iris dataset: 1hr 15min
- Explaining the experiment and breaking it down conceptually
- Experiment design
- Introduce the Iris dataset
- Introduce the problem (discriminating across the three species using just measurement samples)
- Propose the used method: LDA
- Breaking down this problem/solution into necessary steps
- Getting the data
- Preprocessing it
- Extracting features
- Training the machine
- Scoring
- Displaying results
- Understanding how/why to split into BEAT blocks
- The MapReduce concept -> blocks & connections
- Synchronization & the "every block is a for-loop" thing
- On-paper toolchain (?)
- Databases
- Quickly introducing Bob
- Creating a database
- Dataformats
- Intro to pulling stuff from platform
- Creating one/some manually
- Algorithms
- What are "algorithms" - analyzer vs normal
- Anatomy of an algorithm file (functions)
- More Bob intro
- Analyzer explanation & create analyzer
- Toolchains
- Using algorithms to create toolchain blocks
- Copying & cool editor stuff
- Discussing toolchain connections & types
- Putting it all together: Experiments
- Explaining how experiments relate to other things
- Creating an experiment and assigning datasets/blocks/parameters
- Plots
- How do plots work? Plotters & plotterparameters
- Creation of plotters
- Creation of plotterparameters
- Generating plots for an experiment
- Pushing back to the platform (?)
- More complex & practical example using AT&T eigenfaces: 30min
- Conceptual breakdown: experiment design
- breaking down eigenface into necessary steps
- understanding how/why to split into BEAT blocks & highlighting reusability stuff
- on-paper toolchain
- toolchain
- Reusing toolchains & other components with DCT-GMM: 15min
- designing using the above stuff
- "wow look reusing stuff"
- Creating a new environment off of an existing one with `beat.env.python`: 30min
- Intro to environments & how that all works
- docker executor
- showing where environments are
- compiling/making an environment
- changing the env & making a new onehttps://gitlab.idiap.ch/beat/beat.core/-/issues/11(Local) Paced development2018-08-02T06:30:28ZAndré Anjos(Local) Paced developmentWhen the user develops a bit toolchain, s/he cannot test the toolchain if algorithms for *all* blocks are not implemented. This makes development a bit hard and demotivating.
A simple solution to this problem would be to implement som...When the user develops a bit toolchain, s/he cannot test the toolchain if algorithms for *all* blocks are not implemented. This makes development a bit hard and demotivating.
A simple solution to this problem would be to implement some sort of "noop" algorithm that could live inside the "beat" user account.
In local execution mode (with `beat run`), if such an algorithm would be found, then it would not execute the current algorithm or any other following it. This would allow the user to place "beat/noop" as an algorithm in all blocks to be developed and focus on a single block at a time.https://gitlab.idiap.ch/beat/beat.examples/-/issues/4Improve documentation for all databases2017-10-04T21:58:17ZAndré AnjosImprove documentation for all databasesInsert both short and long documentation strings for every database in this package.
Take the following page as input: https://gitlab.idiap.ch/biometric/beat.databases/wikis/homeInsert both short and long documentation strings for every database in this package.
Take the following page as input: https://gitlab.idiap.ch/biometric/beat.databases/wikis/homeRP Conference, Darmstadt, DEhttps://gitlab.idiap.ch/beat/beat.backend.python/-/issues/6Move algorithm and library into this package2017-08-08T04:40:37ZLaurent EL SHAFEYMove algorithm and library into this packageLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.editor/-/issues/8Change IsAnalyzer logic so normal blocks can have a results field2017-11-16T11:24:47ZJaden DIEFENBAUGHChange IsAnalyzer logic so normal blocks can have a results fieldInstead of checking for existence of a `results` field, check if the first endpoint group has outputs or notInstead of checking for existence of a `results` field, check if the first endpoint group has outputs or nothttps://gitlab.idiap.ch/beat/docs/-/issues/8Various documentation warnings2019-07-02T10:29:31ZAndré AnjosVarious documentation warningsThere are some various documentation warnings being emitted with the current aggregated documentation. While some are OK-ish, others are not. We need to go through all of these and correct them ASAP.There are some various documentation warnings being emitted with the current aggregated documentation. While some are OK-ish, others are not. We need to go through all of these and correct them ASAP.Zohreh MOSTAANIZohreh MOSTAANIhttps://gitlab.idiap.ch/beat/beat.examples/-/issues/3Databases have no version number2017-10-04T21:58:17ZLaurent EL SHAFEYDatabases have no version numberThe current databases (JSON declaration) have no version number. This should be integrated.The current databases (JSON declaration) have no version number. This should be integrated.Biometrics Center Kickoff Meeting and BEAT Reviewhttps://gitlab.idiap.ch/beat/beat.backend.python/-/issues/5Parameters handling requires a string to numpy-type conversion2017-08-08T04:40:37ZLaurent EL SHAFEYParameters handling requires a string to numpy-type conversionHandling the parameters of an algorithm requires the backend to be able to perform a string to numpy-type conversion.
This is currently performed by the method _convert_parameter_types() of the beat.core.algorithm.Algorithm class. Since...Handling the parameters of an algorithm requires the backend to be able to perform a string to numpy-type conversion.
This is currently performed by the method _convert_parameter_types() of the beat.core.algorithm.Algorithm class. Since the backend does not use this class, we need to move this function somewhere else to deal with experiment parameters.Laurent EL SHAFEYLaurent EL SHAFEY