beat.core issueshttps://gitlab.idiap.ch/beat/beat.core/-/issues2017-08-06T11:17:04Zhttps://gitlab.idiap.ch/beat/beat.core/-/issues/21Output method write() is not able to process beat.core.Data instances2017-08-06T11:17:04ZManuel GüntherOutput method write() is not able to process beat.core.Data instancesThe output method write() is currently not able to process beat.core.Data instances.
This means that when a complex data structure is read from the inputs and that this input has to be written in one of the outputs, the user currently...The output method write() is currently not able to process beat.core.Data instances.
This means that when a complex data structure is read from the inputs and that this input has to be written in one of the outputs, the user currently has to convert it into a JSON like python dictionary.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/22Analyzers with the same content but different versions share the same hash2017-08-06T11:17:04ZLaurent EL SHAFEYAnalyzers with the same content but different versions share the same hashIn our current design, analyzers with the same content but different versions share the same hash.
This is problematic, since the cache files for the analyzers include the 'algorithm_name/version' in their headers. Since they share th...In our current design, analyzers with the same content but different versions share the same hash.
This is problematic, since the cache files for the analyzers include the 'algorithm_name/version' in their headers. Since they share the same hash, loading a cache file for a requested 'algorithm_name/version1' may lead to loading a cache file with 'algorithm_name/version2' hardcoded in the header, which will fail, because of the 'dataformat validation'.
To avoid this problem, one possible solution is to change the way hash are generated for analyzer blocks.Second BEAT Reviewhttps://gitlab.idiap.ch/beat/beat.core/-/issues/23beat * pull commands are extremely slow in certain cases2017-08-06T11:17:04ZAndré Anjosbeat * pull commands are extremely slow in certain casesI'm currently implementing some tests for the cmdline utilities. I'm noticing that pulling algorithms out of the platform gets extremely slow in some circumstances. Namely, when using the tool as user `tutorial`, but downloading stuff fr...I'm currently implementing some tests for the cmdline utilities. I'm noticing that pulling algorithms out of the platform gets extremely slow in some circumstances. Namely, when using the tool as user `tutorial`, but downloading stuff from user `tpereira`. What is special about this? Why is it so slow? To be checked.
The same behaviour **cannot** be observed downloading either `data formats` or `toolchains`. I wonder if there is a problem with the algorithm -> data format dependence.Tutorial 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.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.core/-/issues/26Documentation updates2017-08-06T11:17:04ZAndré AnjosDocumentation updatesThe API for beat.core is rather complete and well-documented. It would be good to catch up with the rest of the documentation before our next deliverable (by end of April/2015).The API for beat.core is rather complete and well-documented. It would be good to catch up with the rest of the documentation before our next deliverable (by end of April/2015).BEAT TourLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/27Downloading/Uploading of database declarations and views2017-08-06T11:17:03ZAndré AnjosDownloading/Uploading of database declarations and viewsOnce beat.web#86 is fixed, then we should implement the pull/push of database declarations via the command-line as well.Once beat.web#86 is fixed, then we should implement the pull/push of database declarations via the command-line as well.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/28No way to visualise (binary) cache data2017-08-06T11:17:03ZAndré AnjosNo way to visualise (binary) cache dataAfter our data re-structuring in this package, a useful feature was removed: the ability to write cache files as JSON text. Cache files are now written in binary format, which improves the calculation precision and translates to what hap...After our data re-structuring in this package, a useful feature was removed: the ability to write cache files as JSON text. Cache files are now written in binary format, which improves the calculation precision and translates to what happens inside the platform. It is also much faster.
A side effect was we lost the possibility to directly view cache files.
A command-line option/command at our `beat` swiss-army knife could allow us to recover this ability, by providing a "view" command that allows one to inspect the contents of binary cache files.
This bug will remain opened until this is fixed.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/29Loops between blocks (MAP/Reduce)2020-05-13T06:32:34ZTiago de Freitas PereiraLoops between blocks (MAP/Reduce)For some iterative algorithms we can create procedures to parallelize them.
This parallelization involves a Map step (when you slice the data between the nodes) and the Reduce step (when you reduce/gather some data from the node).
And ...For some iterative algorithms we can create procedures to parallelize them.
This parallelization involves a Map step (when you slice the data between the nodes) and the Reduce step (when you reduce/gather some data from the node).
And you do this (Map/Reduce) several times.
To implement that using platform, you need two blocks, one for the Map and one for the Reduce.
Since the flow of the data in the platform is just forward, it is not possible to do a loop between these two blocks
Would be nice to have that feature.https://gitlab.idiap.ch/beat/beat.core/-/issues/30beat db index improvements2017-08-06T11:17:03ZAndré Anjosbeat db index improvementsShould index all databases, if not specified which.
It should also support multiple databases to be indexed.Should index all databases, if not specified which.
It should also support multiple databases to be indexed.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/31Experiment setup() does not handle properly blocks with multiple outputs2017-08-06T11:17:03ZLaurent EL SHAFEYExperiment setup() does not handle properly blocks with multiple outputsFollowing the major revamping of this package, blocks with multiple outputs are not handled in the right way.
In particular, the current implementation of the setup() method for Experiment assumes that a block has a single output (e.g. ...Following the major revamping of this package, blocks with multiple outputs are not handled in the right way.
In particular, the current implementation of the setup() method for Experiment assumes that a block has a single output (e.g. see https://gitlab.idiap.ch/biometric/beat.core/blob/v0.8.1/beat/core/experiment.py#L858).
I am unsure whether there are other implications in the code or not.Tutorial for the FG2015 ConferenceLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/32Dash '-' as a valid (or invalid) character for element names (dataformats, al...2017-08-06T11:17:03ZLaurent EL SHAFEYDash '-' as a valid (or invalid) character for element names (dataformats, algorithms, etc.)?I've noticed an inconsistency wrt. the usage of the dash '-' character for element names.
There is currently a bunch of elements (e.g. algorithm 'ptome/fingervein-miura_scoring/1/') defined on the platform, which contains the '-' char...I've noticed an inconsistency wrt. the usage of the dash '-' character for element names.
There is currently a bunch of elements (e.g. algorithm 'ptome/fingervein-miura_scoring/1/') defined on the platform, which contains the '-' character.
In contrast, the '-' character is not 'always' part of the valid character at the JSON validation schema level (see beat/core/schema/experiment.json line 48).
The list of valid characters needs to be properly defined, and the characters accepted by the beat.web interface need to match the ones of the JSON validation schema.BEAT TourLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.core/-/issues/33Thorough testing and API support for plotters and plotter parameters2018-12-19T14:24:41ZAndré AnjosThorough testing and API support for plotters and plotter parametersAs of today, the concept of a `plotter` is implemented in beat.core. It would be good to extend its implementation in the core so that:
1. Plotters can be downloaded/uploaded/edited using the web API and via the command-line tool
2. ...As of today, the concept of a `plotter` is implemented in beat.core. It would be good to extend its implementation in the core so that:
1. Plotters can be downloaded/uploaded/edited using the web API and via the command-line tool
2. A command-line utility is made available to plot a given experiment output
3. Plotter parameters are instantiated in the core, so that we can also apply them while locally plotting
This should be done after the FG tutorial.https://gitlab.idiap.ch/beat/beat.core/-/issues/34JSON declarations should be versioned2017-08-06T11:17:03ZAndré AnjosJSON declarations should be versionedWe should include a version field on the JSON declaration to allow for changes on the declaration to co-exist.We should include a version field on the JSON declaration to allow for changes on the declaration to co-exist.BTAS TutorialAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/35Move command-line client to another package2017-08-06T11:17:03ZAndré AnjosMove command-line client to another packageAs discussed, we should move the command-line client to another package, since it depends on the `beat.web` API. This creates some sort of reverse dependence which we should get rid of.As discussed, we should move the command-line client to another package, since it depends on the `beat.web` API. This creates some sort of reverse dependence which we should get rid of.BEAT TourAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/36Analyzer should not be able to write more than one output2018-12-19T13:58:55ZAndré AnjosAnalyzer should not be able to write more than one outputCurrently, analyzers running on the platform can write as many outputs as times the `process()` function is called on the user code. This is non-sensical and ends-up creating invalid results for an experiment.
The platform should trig...Currently, analyzers running on the platform can write as many outputs as times the `process()` function is called on the user code. This is non-sensical and ends-up creating invalid results for an experiment.
The platform should trigger an error by the second time the user tries to write a result in an analyzer.Philip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.core/-/issues/37Some toolchains show execution errors despite looking similar to existing ones2017-10-16T09:01:26ZAndré AnjosSome toolchains show execution errors despite looking similar to existing onesIn particular, this happened today with a toolchain forked by @sebastien.marcel at the platform. The same happened with another colleague.
If the user runs on the original fork, everything runs fine. If the user tries to use his versi...In particular, this happened today with a toolchain forked by @sebastien.marcel at the platform. The same happened with another colleague.
If the user runs on the original fork, everything runs fine. If the user tries to use his version, the error shows up.
@sebastien.marcel: Could you please share with me user `anjos`, the said toolchain? I'll try to have a look on its contents and figure out the problem.André AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/38discover_environments() does not crash when the same environment/version is d...2017-08-06T11:17:03ZLaurent EL SHAFEYdiscover_environments() does not crash when the same environment/version is detected multiple timesWhile this should raise an exception.While this should raise an exception.BTAS TutorialAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/39inputs/outputs cleanup w.r.t beat.backend.python2017-08-06T11:17:03ZAndré Anjosinputs/outputs cleanup w.r.t beat.backend.pythonAs of today there is some functionality of beat.backend.python that is duplicated in this package. We should clean-up and organised it so there is no repetition of code, respecting a good DRY principle.As of today there is some functionality of beat.backend.python that is duplicated in this package. We should clean-up and organised it so there is no repetition of code, respecting a good DRY principle.BTAS TutorialAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/40Cleanup of executor/dataformats/algorithms/libraries/schema loading2017-08-06T11:17:03ZAndré AnjosCleanup of executor/dataformats/algorithms/libraries/schema loadingAs of today, we moved the definition of these objects and functions to beat.backend.python. The backend does not need to be able to validate objects, only to load them and instantiate a runner. We should revise and clean-up this relation...As of today, we moved the definition of these objects and functions to beat.backend.python. The backend does not need to be able to validate objects, only to load them and instantiate a runner. We should revise and clean-up this relationship.BTAS TutorialAndré AnjosAndré Anjos