EMADL2CPP issueshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues2018-12-27T13:40:32+01:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/1Missing variable reassignment in generated cpp code2018-12-27T13:40:32+01:00Svetlana PavlitskayaMissing variable reassignment in generated cpp code**Expected**: different values assigned to the variable ```c``` two times.
**Actual**: ```c``` gets value assigned only first time.
Model:
```
component Add{
ports
in Q(0 : 10) a,
out Q(0 : 20) c;
implementatio...**Expected**: different values assigned to the variable ```c``` two times.
**Actual**: ```c``` gets value assigned only first time.
Model:
```
component Add{
ports
in Q(0 : 10) a,
out Q(0 : 20) c;
implementation Math{
Q b = 42 + a;
c = 1 + b;
b = 43;
c = 1 + b;
}
}
```
Generated code:
```
#ifndef ADD
#define ADD
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#include "armadillo"
using namespace arma;
class add{
public:
double a;
double c;
void init()
{
}
void execute()
{
double b = 2+a;
c = 1+b;
b = 3;
}
};
#endif
```
Missing ```c = 1 + b;``` as the last statement in the ```execute()``` block.
Problem occurs only when ```c``` has two identical assignments.Evgeny KusmenkoAlexander David HellwigEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/2Generator Factory2018-08-02T14:12:40+02:00Evgeny KusmenkoGenerator FactoryWe need a factory to create a train generator and an architecture generator,
see Abstract Factory Pattern
The Factories should be defined in their respective projects, i.e. CNNArch2Caffe2 should contain a Caffe2GeneratorFactory; the CN...We need a factory to create a train generator and an architecture generator,
see Abstract Factory Pattern
The Factories should be defined in their respective projects, i.e. CNNArch2Caffe2 should contain a Caffe2GeneratorFactory; the CNNArch2MXNet Generator project should contain the MXNetFactory.Carlos Alfredo Yeverino RodriguezCarlos Alfredo Yeverino Rodriguezhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/3Using EMAMOpt2CPP2018-10-28T23:42:33+01:00Evgeny KusmenkoUsing EMAMOpt2CPPIm Moment delegiert EMADL2CPP die Generierung an EMAM2CPP. @christoph.richter hat aber eine Erweiterung für EMAM2CPP in seiner MA geschrieben. Könntest du den EMADL2CPP so anpassen, dass er nicht mehr an EMAM2CPP sondern an EMAMOpt2CPP d...Im Moment delegiert EMADL2CPP die Generierung an EMAM2CPP. @christoph.richter hat aber eine Erweiterung für EMAM2CPP in seiner MA geschrieben. Könntest du den EMADL2CPP so anpassen, dass er nicht mehr an EMAM2CPP sondern an EMAMOpt2CPP delegiert?
@svetlana.pavlitskaya @LowhuhnCarlos Alfredo Yeverino RodriguezCarlos Alfredo Yeverino Rodriguezhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/4Windows runner fails because of a newline issue2018-10-28T10:23:07+01:00Svetlana PavlitskayaWindows runner fails because of a newline issueTrace log excerpt:
`extraneous input '\r\n' expecting {'component', 'port', 'ports', 'instance', 'connect', 'autoconnect', 'autoinstantiate', 'implementation', '}'}`Trace log excerpt:
`extraneous input '\r\n' expecting {'component', 'port', 'ports', 'instance', 'connect', 'autoconnect', 'autoinstantiate', 'implementation', '}'}`Svetlana PavlitskayaSvetlana Pavlitskayahttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/5add translateToICube method2019-07-09T16:52:43+02:00Evgeny Kusmenkoadd translateToICube method- to generate ICubes for Z- to generate ICubes for ZSebastian NickelsSebastian Nickelshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/6Fully automated compilation procedure2018-12-17T14:41:09+01:00Evgeny KusmenkoFully automated compilation proceduretraining should be done automatically. the user should need just one call to get the whole system compiled. Very important: if neither the network nor the data have the training should be skipped, i.e. the generator should detect whether...training should be done automatically. the user should need just one call to get the whole system compiled. Very important: if neither the network nor the data have the training should be skipped, i.e. the generator should detect whether training is required or not.
training data is to be fetched from a default location. Unless specified otherwise.
I don't like the idea of putting the path into the training file (as it would require to change this file whenever the location is changed). on the other hand, using a CLI parameter is not very user friendly. What do you think?Carlos Alfredo Yeverino RodriguezCarlos Alfredo Yeverino Rodriguezhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/7Lab: DL Toolchain Automation2019-03-08T17:25:36+01:00Evgeny KusmenkoLab: DL Toolchain AutomationThe aim of this ticket is to make the EMADL2CPP compilation toolchain as user friendly and intuitive as possible.
**Current state:** EMADL2CPP is a code generator / compiler written to enable the compilation and training of EmbeddedMon...The aim of this ticket is to make the EMADL2CPP compilation toolchain as user friendly and intuitive as possible.
**Current state:** EMADL2CPP is a code generator / compiler written to enable the compilation and training of EmbeddedMontiArc models featuring Deep Learning based components, i.e. those having a CNNArch implementation. However, instead of doing the actual code generation itself, EMADL2CPP delegates the actual generation to the respective sub-generators: EMAM2CPP for architecture generation as well as MontiMath code generation and CNNArch2X for deep learning components (thereby X=MXNet or Caffe2). Thereby, the code is generated and the user has to make sure that the database containing the training and test data is put into the right location in the target directory structure, then train the network and compile the result to an executable file "manually".
**Goal:** Rework the EMADL2CPP compiler such that based on a given *configuration* it generates code , trains *all* the networks present in the EmbeddedMontiArc model, compiles the result to an executable in one shot (only one call allowed!).
Therefore, an additional configuration file is needed to set up the data paths for training for each DL component as well as some meta data concerning the database. A line of the configuration file might look like this (and we need a line per DL component):
`de.some.package.MyParentComponent.dlComponentToTrainInstanceName /path/to/data LMDB`
Thereby, the first argument is a fully qualified descriptor of the instance to be trained. The name of the instance is `dlComponentToTrainInstanceName`, it is instantiated in the component `MyParentComponent` residing in the package `de.some.package`.
The semantics of the line is to look up an LMDB database containing training and test data respectively in `/path/to/data`. Hence, EMADL2CPP should ask the backend compiler if it currently supports this kind of data base. If an unsopprted database type is required, an error needs to be thrown.
On the other hand, you do not want to retrain all the networks inside your model each time you change and regenerate a MontiMath component. Hence, you need to check whether training is necessary. Therfore, you might want to store an additional file containing the hash value of the data used for training in the target directory of each DL component. If neither the hash value of the training database nor the CNNArch component implementation has changed, a re-training can be omitted.
Of course, there might be scenarios where you want to force re-training and there are also scenario's where you want to omit checking the hash value as it might take a while for big databases. Therefore, please introduce two new CLI parameters for EMADL2CPP: `no-training` and `force-training`.
There is one more pitfall: sometimes you want to have several instances of the very same component, i.e. you want to allow for *weight sharing*. It should, hence, be possible to have several instances of the same DL component to share weights. On epossible solution would be to check, whether several instances mentionned in the configuration file have the same component type AND the same training data. Then the weights should be shared. As an additional alternative it makes sense to allow one to configure a component type with a database instead of a concrete instance. Then all instances of this type should share the same weight (with exceptions of concretely mentionned instances)
Feel free to ask questions, suggest improvements, and discuss new ideas.Christopher Jan-Steffen BrixChristopher Jan-Steffen Brix2019-01-31https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/8Lab: Image based Calculator2020-10-29T16:21:37+01:00Evgeny KusmenkoLab: Image based CalculatorTo evaluate #7 the goal is to design a small EMADL model featuring several DL components as well as some math components. The input of this model are 3 MNIST pictures and 2 CIFAR10 pictures.
Each input picture is translated to its respe...To evaluate #7 the goal is to design a small EMADL model featuring several DL components as well as some math components. The input of this model are 3 MNIST pictures and 2 CIFAR10 pictures.
Each input picture is translated to its respective class number. These numbers are then fed forward to a math component which would compute a polynomial of the form y=a1*x1+a_21*x2^2 + a3, where the a's are coefficients given by the MNIST images and the x's are the variables provide by the cifar10 classes.
Please evaluate the individual test error for each component as well as the whole systems test error. Which loss function is suitable for this problem?Christopher Jan-Steffen BrixChristopher Jan-Steffen Brix2019-01-23https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/11Dependency Issue2020-10-29T16:21:54+01:00Evgeny KusmenkoDependency Issuemvn clean install -s settings.xml can't get monticar commons dependencymvn clean install -s settings.xml can't get monticar commons dependencyhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/12Checksum calculation for larger files fails2020-10-29T16:21:26+01:00Ghost UserChecksum calculation for larger files failsThe method `getChecksumForFile(...)` in file EMADLGenerator.java fails for larger files. It was executed on our training set (~2.0 GB) and failed.The method `getChecksumForFile(...)` in file EMADLGenerator.java fails for larger files. It was executed on our training set (~2.0 GB) and failed.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/13Move to EMADL2020-10-29T16:22:18+01:00Evgeny KusmenkoMove to EMADLCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaNicola GattoEyüp HarputluNicola Gattohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/15Weights as Dependencies2020-10-29T16:20:54+01:00Evgeny KusmenkoWeights as DependenciesThe goal is to be able to publish trained weights as archives (e.g. JARs)
and to use them as maven dependencies in order to skip training.
First step: define archive structure for Gluon ArchivesThe goal is to be able to publish trained weights as archives (e.g. JARs)
and to use them as maven dependencies in order to skip training.
First step: define archive structure for Gluon ArchivesYuyuan LiuYuyuan Liu2020-01-15https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/16Generator cannot resolve port2020-11-11T13:13:04+01:00Mattis HoppeGenerator cannot resolve portI have 3 emadl files containing:
```
component Add{
ports
in Q num1,
in Q num2,
out Q erg;
implementation Math{
erg = num1 + num2;
}
}
```
```
component Add1{
ports
in Q testin,
out Q testout;
instance Add add;
connect te...I have 3 emadl files containing:
```
component Add{
ports
in Q num1,
in Q num2,
out Q erg;
implementation Math{
erg = num1 + num2;
}
}
```
```
component Add1{
ports
in Q testin,
out Q testout;
instance Add add;
connect testin -> add.num1;
connect testin -> add.num2;
connect add.erg -> testout;
}
```
```
component Add2{
ports
in Q test1,
out Q test2;
instance Add1 adder;
connect test1 -> adder.testin;
connect adder.testout -> test2;
}
```
Building Add and Add1 works just fine, but as soon as I try to build Add2 I get following Error-message:
```
[WARN] name of connector's source/target does has two parts: instance.port, cannot resolve port
Exception in thread "main" java.lang.NullPointerException
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.convertPortSymbolToVariable(PortConverter.java:59)
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.convertPortSymbolToVariable(PortConverter.java:48)
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.getVariableForPortSymbol(PortConverter.java:33)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateConnectors(ComponentConverterMethodGeneration.java:85)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateExecuteMethodInner(ComponentConverterMethodGeneration.java:70)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateExecuteMethod(ComponentConverterMethodGeneration.java:61)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter.convertComponentSymbolToBluePrint(ComponentConverter.java:99)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter.convertComponentSymbolToBluePrint(ComponentConverter.java:368)
at de.monticore.lang.monticar.generator.cpp.LanguageUnitCPP.generateBluePrints(LanguageUnitCPP.java:64)
at de.monticore.lang.monticar.generator.cpp.GeneratorCPP.generateString(GeneratorCPP.java:159)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateSubComponents(EMADLGenerator.java:636)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateComponent(EMADLGenerator.java:549)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateSubComponents(EMADLGenerator.java:648)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateComponent(EMADLGenerator.java:549)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateStrings(EMADLGenerator.java:395)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateFiles(EMADLGenerator.java:219)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generate(EMADLGenerator.java:125)
at de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli.runGenerator(EMADLGeneratorCli.java:148)
at de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli.main(EMADLGeneratorCli.java:72)
```
Changing variablenames etc. does not work either. For building I am using version 0.4.3 of the generatorEvgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/27Data loader Target code updaten2021-11-19T14:58:24+01:00Evgeny KusmenkoData loader Target code updatenPaul SchlackPaul Schlackhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/28link to docker files not working2021-11-10T11:05:51+01:00Jonas Ritzlink to docker files not workingThe link to the docker files in the first line of subsection Prerequisites in readme.md does not seem to work properly. (404)The link to the docker files in the first line of subsection Prerequisites in readme.md does not seem to work properly. (404)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/34MXNet Docker Build fails2022-07-08T15:52:15+02:00Evgeny KusmenkoMXNet Docker Build failsEvgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/35Generation Test fails2022-07-08T15:51:43+02:00Evgeny KusmenkoGeneration Test fails@nils_baumann the generation test fails in master, please fix the expected target code@nils_baumann the generation test fails in master, please fix the expected target codeNils BaumannNils Baumannhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/37Add CustomLayerTest to CI2022-11-09T10:19:04+01:00Evgeny KusmenkoAdd CustomLayerTest to CIhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/38Validation Mechanism for Components2022-10-11T11:40:17+02:00Evgeny KusmenkoValidation Mechanism for Componentsallow parameterizable components in conflang based on the components of a reference modelallow parameterizable components in conflang based on the components of a reference modelFeras MulhemFeras Mulhem2022-09-24https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/39Introduce String types in EMA2022-10-11T11:39:44+02:00Evgeny KusmenkoIntroduce String types in EMA- make it possible to use String as a type for ports and component parameters
- write tests
- This [reference model](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/blob/16-pytorch/pytorch/predefined-...- make it possible to use String as a type for ports and component parameters
- write tests
- This [reference model](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/blob/16-pytorch/pytorch/predefined-pipeline/src/test/resources/schemas/referencemodels/Training_Pipeline.ema) of a machine learning pipeline would parse when trying to provide String parameters in component definitions, even though no explicit support for Strings seems to take place. However, trying to instantiate the corresponding component, here `instance Data_Access ("path.to.datasource") data_access_step;` would lead to a parsing error. To reproduce this, it is sufficient to try to parse the model with the parsing API provided by the EMA language.Nazish QamarAkashKumarDSNazish Qamar2022-09-27https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/40Execution Order2022-10-11T11:24:01+02:00Evgeny KusmenkoExecution OrderUse Execution Semantics to determine the correct order of the component executionUse Execution Semantics to determine the correct order of the component executionFeras MulhemFeras Mulhem2022-10-05https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/41Implement LoadNetwork layer for PyTorch backend2022-10-11T11:19:12+02:00Evgeny KusmenkoImplement LoadNetwork layer for PyTorch backendSonam Raju ChughSonam Raju Chugh2022-09-22https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/42AutoML: Architecture Search2023-05-29T13:29:06+02:00Evgeny KusmenkoAutoML: Architecture Search- Please extend the framework to optimize the MontiAnna neural architecture for a given learning problem
- create tests for your framework
- create a model in the MNISTCalculator project X
- create a CI experiment in the MNISTCalculator ...- Please extend the framework to optimize the MontiAnna neural architecture for a given learning problem
- create tests for your framework
- create a model in the MNISTCalculator project X
- create a CI experiment in the MNISTCalculator project
- please create an AutoML pipelineTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2023-05-01https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/44Custom Layers2022-08-31T14:53:38+02:00Evgeny KusmenkoCustom LayersPlease implement custom layers for the PyTorch backendPlease implement custom layers for the PyTorch backendSonam Raju ChughSonam Raju Chugh2022-08-24https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/46Please create a PyTorch docker image2022-11-09T09:25:16+01:00Evgeny KusmenkoPlease create a PyTorch docker image- under test/resources/pytorch
- create a CI pipeline building and pushing the image to the registry- under test/resources/pytorch
- create a CI pipeline building and pushing the image to the registrySonam Raju ChughSonam Raju Chughhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/47Merge the branch ma_sc to new emadl2cpp2022-11-16T15:56:28+01:00Sonam Raju ChughMerge the branch ma_sc to new emadl2cppOnce new emadl2cpp is created-
Merge the test cases (GenerationTest.java, CustomLayerTest.java)(test cases for mnist, loadnetwork, custom layer)
Merge the Backend.java (which has new backend pytorch)
related branch: [ma_sc](https://git....Once new emadl2cpp is created-
Merge the test cases (GenerationTest.java, CustomLayerTest.java)(test cases for mnist, loadnetwork, custom layer)
Merge the Backend.java (which has new backend pytorch)
related branch: [ma_sc](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/tree/ma_sc)
**Tasks**
- [ ] perform a health check on the testsTobias HörnschemeyerFeras MulhemTobias Hörnschemeyerhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/48Extend Conf Schema for Network Optimizers2022-11-07T10:24:57+01:00Evgeny KusmenkoExtend Conf Schema for Network Optimizerssimilarly to `optimizer:sgd {...}` we want to allow the definition of `network_optimizer` parameters. Since depending on the concrete optimizer it might have varying parameters, e.g. alpha, beta in the case of efficient net, it should be...similarly to `optimizer:sgd {...}` we want to allow the definition of `network_optimizer` parameters. Since depending on the concrete optimizer it might have varying parameters, e.g. alpha, beta in the case of efficient net, it should be written in a nested way similarly to the optimizer example as `network_optimizer:efficientnet {efficientnet specific params come here}` or `network_optimizer:adanet{adanetspecific params come here}`Hiroshi HamanoAkashKumarDSHiroshi Hamano2022-10-18https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/49Create Workflow for Autonomous Pipeline Execution2023-01-28T22:17:41+01:00Evgeny KusmenkoCreate Workflow for Autonomous Pipeline ExecutionIn montipipes#1 a python script was generated to execute a python pipeline. In this issue **minimal** workflow shall be created to test functionality integration into the framework
**Tasks**
- [x] dedicated classes to execute the follow...In montipipes#1 a python script was generated to execute a python pipeline. In this issue **minimal** workflow shall be created to test functionality integration into the framework
**Tasks**
- [x] dedicated classes to execute the following steps
- [x] parsing
- [x] parse appropriate pipeline model
- [x] parse pipeline configuration
- [x] parse training configuration
- [x] symbol table for EMA pipeline
- [x] symbol table for training and pipeline configurations
- [x] check CoCos
- [x] inter-model validations (schemas / configurations):
- [x] generate backend-related artefacts
- [x] wrap EMADLGenerator with new main generator (MontiAnnaGenerator)
- [x] refactor MontiAnnaGenerator using EMADLGenerator functionality
- [x] provide python training configuration
- [x] use default if not generated
- [x] generate the configuration
- [x] choose the appropriate schema API
- [x] calculate execution semantic
- [x] generate pipeline script
- [x] execute pipeline
- [x] read results
- [x] Discuss TODOS
**Issues**
- [x] Problem with parsing LeNet model with generic parameters
**Notes**
- EMADLGenerator for inspiration
- Defaults are to be used to create quick demonstration
- Only PyTorch is supported as backend for nowTobias HörnschemeyerFeras MulhemNazish QamarTobias Hörnschemeyer2022-12-30https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/50Create AdaNet algorithm2022-11-16T16:07:55+01:00Evgeny KusmenkoCreate AdaNet algorithmTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2022-11-21https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/51Create EfficientNet algorithm2022-11-25T12:44:31+01:00Evgeny KusmenkoCreate EfficientNet algorithmTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2022-11-21https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/52Create parser for MontiAnna languages2022-11-27T11:35:22+01:00Feras MulhemCreate parser for MontiAnna languagesDifferent ways can be observed that are used to parse EMADL models and their related models. The goal of this issue is to modularise und unify the parsing interface.
**Included languages**
- ConfLang
- SchemaLang
- EmbeddedMontiArc (EMA...Different ways can be observed that are used to parse EMADL models and their related models. The goal of this issue is to modularise und unify the parsing interface.
**Included languages**
- ConfLang
- SchemaLang
- EmbeddedMontiArc (EMA)
**Tasks**
- [x] create parsing classes
- [x] parse a ConfLang configuration and return symbol-augmented AST
- [x] parse a SchemaLang schema and return symbol-augmented AST
- [x] parse an EMA model and return symbol-augmented AST
- [x] parse EMADL model with CNN architecture into symbol-augmented AST
- [x] test it on [LeNetNetwork](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/blob/master/src/test/resources/models/mnist/LeNetNetwork.emadl)
**Notes**
- The lenet network is crucial for the [evaluation ](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistpredictor) part and has priorityTobias HörnschemeyerFeras MulhemTobias Hörnschemeyer2022-11-28https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/53Adanet: create different component search strategies2023-04-24T14:28:05+02:00Tobias HörnschemeyerAdanet: create different component search strategiesCurrently, the candidate search only focuses on components with the same depth or with depth + 1, while depth is the depth of the best component in the last iteration.
There might be other strategies to find components.Currently, the candidate search only focuses on components with the same depth or with depth + 1, while depth is the depth of the best component in the last iteration.
There might be other strategies to find components.Tobias HörnschemeyerNazish QamarTobias Hörnschemeyer2023-03-31https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/54CustomLayerPyTorchTest2022-11-09T09:36:16+01:00Evgeny KusmenkoCustomLayerPyTorchTest- currently does not throw the expected exception although the output seems to be correct. Please analyse what the reason is and fix test- currently does not throw the expected exception although the output seems to be correct. Please analyse what the reason is and fix testTobias HörnschemeyerHiroshi HamanoTobias Hörnschemeyer2022-11-09https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/56Input output of architecture search should be ArchitectureSymbol2022-11-25T12:44:31+01:00Evgeny KusmenkoInput output of architecture search should be ArchitectureSymbolMake sure an architecture optimizer takes ArchitetureSymbol as input and has an ArchitectureSymbol as output.
The output AS is then given to the pipeline / code generator , evaluated and the AutoML algoirthm gets the new AS and the eval ...Make sure an architecture optimizer takes ArchitetureSymbol as input and has an ArchitectureSymbol as output.
The output AS is then given to the pipeline / code generator , evaluated and the AutoML algoirthm gets the new AS and the eval metric as input for the next iterationTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2022-11-23https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/57Input of hyperparameter configuration optimization2023-02-11T11:51:00+01:00Evgeny KusmenkoInput of hyperparameter configuration optimizationInput and output of hyperparameter configuration optimization should be the Configuration object (get in touch with @feras.m94.4 to find out which class he uses)Input and output of hyperparameter configuration optimization should be the Configuration object (get in touch with @feras.m94.4 to find out which class he uses)Hiroshi HamanoAkashKumarDSHiroshi Hamano2022-11-30https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/58PrettyPrinter for ArchitectureSymbol2022-11-18T11:55:15+01:00Evgeny KusmenkoPrettyPrinter for ArchitectureSymbolplease create a prettyprinter for architecture symbols, so that we can get textual MontiAnna models for given Architecture symbolsplease create a prettyprinter for architecture symbols, so that we can get textual MontiAnna models for given Architecture symbolsTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2022-11-21https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/59Fix ONNX pipeline2023-03-09T19:35:22+01:00Evgeny KusmenkoFix ONNX pipelineHi Lukas, it seems that one of your merges has broken the [ONNX pipeline](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/pipelines/841093), could you please look into it.Hi Lukas, it seems that one of your merges has broken the [ONNX pipeline](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/pipelines/841093), could you please look into it.Evgeny KusmenkoLukas BramEvgeny Kusmenko2023-03-10https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/60Model for Hyperparameter Optimization2023-03-04T11:02:43+01:00Evgeny KusmenkoModel for Hyperparameter Optimization- please create an experiment in the mnistcalculator project to show which files are needed, how the project should be organized and where the hyperparam space is defined- please create an experiment in the mnistcalculator project to show which files are needed, how the project should be organized and where the hyperparam space is definedHiroshi HamanoAkashKumarDSHiroshi Hamano2023-02-28https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/61Ranges syntax2023-01-07T11:41:08+01:00Evgeny KusmenkoRanges syntaxMake sure you are using the range syntax of EmbeddedMontiArc languagescommons
use Commons2 grammar in ConfLang for thisMake sure you are using the range syntax of EmbeddedMontiArc languagescommons
use Commons2 grammar in ConfLang for thisHiroshi HamanoAkashKumarDSHiroshi Hamano2022-11-30https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/62Object diagrams for model transformations Architecture2023-01-07T12:43:09+01:00Evgeny KusmenkoObject diagrams for model transformations ArchitecturePlease create object diagrams representing the AST/symbol table of a network architecture for several steps of each architecture search algorithm you implementPlease create object diagrams representing the AST/symbol table of a network architecture for several steps of each architecture search algorithm you implementTobias HörnschemeyerNazish QamarTobias Hörnschemeyer2022-12-13https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/63Object diagrams for model transformations Configuration2023-03-04T11:01:11+01:00Evgeny KusmenkoObject diagrams for model transformations ConfigurationPlease create object diagrams representing the AST/symbol table of the configuration for several steps of each hyperparameter search algorithm you implementPlease create object diagrams representing the AST/symbol table of the configuration for several steps of each hyperparameter search algorithm you implementHiroshi HamanoAkashKumarDSHiroshi Hamano2023-02-28https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/64MontiAnna Meta-Model2023-03-04T09:53:26+01:00Evgeny KusmenkoMontiAnna Meta-Model- [x] Please create a meta-model of a MontiAnna neural architecture as a class diagram
- [x] Please define the AdaNet model transformation performed on the metal model , e.g. using pseudo-code
- [x] Please define the EfficientNet model t...- [x] Please create a meta-model of a MontiAnna neural architecture as a class diagram
- [x] Please define the AdaNet model transformation performed on the metal model , e.g. using pseudo-code
- [x] Please define the EfficientNet model transformation performed on the neural architeture metal model , e.g. using pseudo-code
- [x] Please create object diagrams conforming to the meta-model for several steps of AdaNet / EfficientNet, cf. [OD ticket](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/62)
- [x] Make set of slides available for the thesis (Create pictures or emadl descriptions for the object diagramm slides)Tobias HörnschemeyerNazish QamarTobias Hörnschemeyer2023-02-28https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/103How to relate specialized configuration files to particular EMADL network com...2023-04-29T17:21:50+02:00aixaiHow to relate specialized configuration files to particular EMADL network componentsUntil now the configuration file is mapped to a network by ts name.
If we introduce conf files like efficientname.conf the mapping gets lost (which network does it refer to?)Until now the configuration file is mapped to a network by ts name.
If we introduce conf files like efficientname.conf the mapping gets lost (which network does it refer to?)Tobias HörnschemeyerNazish QamarHiroshi HamanoAkashKumarDSTobias Hörnschemeyer2023-03-25https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/104Make conf files use package structure2023-03-04T10:37:37+01:00aixaiMake conf files use package structureFor now in Feras' work conf package is encoded as part of the conf file name. Make it equivalent to components. Use package keyword.For now in Feras' work conf package is encoded as part of the conf file name. Make it equivalent to components. Use package keyword.Tobias HörnschemeyerNazish QamarHiroshi HamanoAkashKumarDSTobias Hörnschemeyer2023-03-03https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/105Make python component library usable as a central resource (stored in EMADL2CPP)2023-02-22T12:25:45+01:00aixaiMake python component library usable as a central resource (stored in EMADL2CPP)Currently we need to create python files for the pipeline components in the projects (cf mnistdetector -> library). Please make sure we have some predefined components packaged with EMADL2Cpp (or CNNArch2Pytorch or any other meaningful p...Currently we need to create python files for the pipeline components in the projects (cf mnistdetector -> library). Please make sure we have some predefined components packaged with EMADL2Cpp (or CNNArch2Pytorch or any other meaningful project) which can be used from there without having to manually copying them to the application projectTobias HörnschemeyerNazish QamarHiroshi HamanoAkashKumarDSTobias Hörnschemeyer2023-02-18https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/110Documentation of AutoML techniques2023-06-07T18:30:30+02:00aixaiDocumentation of AutoML techniquesExtend the Readme of EMADL2CPP.
Copy AutoML explainations from our thesisExtend the Readme of EMADL2CPP.
Copy AutoML explainations from our thesisTobias HörnschemeyerNazish QamarHiroshi HamanoAkashKumarDSTobias Hörnschemeyerhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/111Restrict shrinking2023-04-25T19:31:37+02:00aixaiRestrict shrinkingDiscuss this further next time, decide what to do.Discuss this further next time, decide what to do.Nazish QamarNazish Qamar2023-03-25https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/113train.h5 file too big, needs to replace with smaller version2023-05-30T19:06:52+02:00Nazish Qamartrain.h5 file too big, needs to replace with smaller versionAs the train file is 149 MB, it causes the problem in CI pipeline. We will again replace it with the subset of the original train dataset.As the train file is 149 MB, it causes the problem in CI pipeline. We will again replace it with the subset of the original train dataset.Nazish QamarNazish Qamarhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/114Fixing Job-Token in settings.xml2023-05-30T20:00:50+02:00Nazish QamarFixing Job-Token in settings.xmlNeed to add in settings.xml file
<name>Job-Token</name>
<value>${env.CI_JOB_TOKEN}</value>Need to add in settings.xml file
<name>Job-Token</name>
<value>${env.CI_JOB_TOKEN}</value>Nazish QamarNazish Qamar