Commit 8277d96b authored by Bernhard Rumpe's avatar Bernhard Rumpe

BR-sy

parent 10a6f950
Pipeline #175143 failed with stages
in 36 seconds
# (c) https://github.com/MontiCore/monticore
# Java Maven CircleCI 2.0 configuration file
#
......
# (c) https://github.com/MontiCore/monticore
stages:
- windows
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- (c) https://github.com/MontiCore/monticore -->
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
</project>
# (c) https://github.com/MontiCore/monticore
script:
- git checkout ${TRAVIS_BRANCH}
- mvn clean install cobertura:cobertura org.eluder.coveralls:coveralls-maven-plugin:report --settings "settings.xml"
......
<!-- (c) https://github.com/MontiCore/monticore -->
![pipeline](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2MXNet/badges/master/build.svg)
![coverage](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2MXNet/badges/master/coverage.svg)
\ No newline at end of file
![coverage](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2MXNet/badges/master/coverage.svg)
<!-- (c) https://github.com/MontiCore/monticore -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- (c) https://github.com/MontiCore/monticore -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
......
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.ArchitectureSupportChecker;
......
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.ArchitectureSupportChecker;
......
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.CNNArchGenerator;
......@@ -29,4 +10,4 @@ public class CNNArch2MxNetCli {
GenericCNNArchCli cli = new GenericCNNArchCli(generator);
cli.run(args);
}
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.LayerSupportChecker;
......
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.ArchitectureElementData;
......@@ -71,4 +72,4 @@ public class CNNArch2MxNetTemplateController extends CNNArchTemplateController {
}
include(architectureElement, getWriter());
}
}
\ No newline at end of file
}
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.TrainParamSupportChecker;
public class CNNArch2MxNetTrainParamSupportChecker extends TrainParamSupportChecker {
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.io.paths.ModelPath;
......@@ -45,4 +46,4 @@ public class CNNTrain2MxNet extends CNNTrainGenerator {
String templateContent = templateConfiguration.processTemplate(ftlContext, "CNNTrainer.ftl");
return Collections.singletonMap("CNNTrainer_" + getInstanceName() + ".py", templateContent);
}
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch.generator.TemplateConfiguration;
......@@ -21,4 +22,4 @@ public class MxNetTemplateConfiguration extends TemplateConfiguration {
public Configuration getConfiguration() {
return configuration;
}
}
\ No newline at end of file
}
<#-- (c) https://github.com/MontiCore/monticore -->
#ifndef CNNBUFFERFILE_H
#define CNNBUFFERFILE_H
......
<#-- (c) https://github.com/MontiCore/monticore -->
import mxnet as mx
import logging
import os
......
<#-- (c) https://github.com/MontiCore/monticore -->
#ifndef ${tc.fileNameWithoutEnding?upper_case}
#define ${tc.fileNameWithoutEnding?upper_case}
......
<#-- (c) https://github.com/MontiCore/monticore -->
import logging
import mxnet as mx
<#list configurations as config>
......@@ -50,4 +51,4 @@ if __name__ == "__main__":
}
</#if>
)
</#list>
\ No newline at end of file
</#list>
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = ${tc.join(element.inputs, " + ")}
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.BatchNorm(data=${element.inputs[0]},
fix_gamma=${element.fixGamma?string("True","False")},
name="${element.name}")
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.concat(${tc.join(element.inputs, ", ")},
dim=1,
name="${element.name}")
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
<#assign input = element.inputs[0]>
<#if element.padding??>
<#assign input = element.name>
......@@ -12,4 +13,4 @@
num_filter=${element.channels?c},
no_bias=${element.noBias?string("True","False")},
name="${element.name}")
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Dropout(data=${element.inputs[0]},
p=${element.p?c},
name="${element.name}")
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Flatten(data=${element.inputs[0]},
name="${element.name}")
\ No newline at end of file
name="${element.name}")
<#-- (c) https://github.com/MontiCore/monticore -->
<#assign flatten = element.element.inputTypes[0].height != 1 || element.element.inputTypes[0].width != 1>
<#assign input = element.inputs[0]>
<#if flatten>
......
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = ${element.inputs[element.index]}
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Pooling(data=${element.inputs[0]},
global_pool=True,
kernel=(1,1),
pool_type="${element.poolType}",
name="${element.name}")
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
<#assign channelIndex = element.element.outputTypes[0].channelIndex + 1>
<#assign heightIndex = element.element.outputTypes[0].heightIndex + 1>
<#assign widthIndex = element.element.outputTypes[0].widthIndex + 1>
......
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.LRN(data=${element.inputs[0]},
alpha=${element.alpha?c},
beta=${element.beta?c},
......
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.SoftmaxOutput(data=${element.inputs[0]},
name="${element.name}")
\ No newline at end of file
<#-- (c) https://github.com/MontiCore/monticore -->
# ${element.name}, output shape: {<#list element.element.outputTypes as type>[${tc.join(type.dimensions, ",")}]</#list>}
<#-- (c) https://github.com/MontiCore/monticore -->
<#assign input = element.inputs[0]>
<#if element.padding??>
<#assign input = element.name>
......@@ -11,4 +12,4 @@
pool_type="${element.poolType}",
stride=(${tc.join(element.stride, ",")}),
name="${element.name}")
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Activation(data=${element.inputs[0]},
act_type='relu',
name="${element.name}")
......
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Activation(data=${element.inputs[0]},
act_type='sigmoid',
name="${element.name}")
<#-- (c) https://github.com/MontiCore/monticore -->
<#-- This template is not used if the followiing architecture element is an output. See Output.ftl -->
${element.name} = mx.symbol.softmax(data=${element.inputs[0]},
axis=1,
......
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.split(data=${element.inputs[0]},
num_outputs=${element.numOutputs?c},
axis=1,
name="${element.name}")
<#include "OutputShape.ftl">
\ No newline at end of file
<#include "OutputShape.ftl">
<#-- (c) https://github.com/MontiCore/monticore -->
${element.name} = mx.symbol.Activation(data=${element.inputs[0]},
act_type='tanh',
name="${element.name}")
<#-- (c) https://github.com/MontiCore/monticore -->
<#list tc.architecture.outputs as output>
<#assign shape = output.ioDeclaration.type.dimensions>
vector<float> CNN_${tc.getName(output)}(<#list shape as dim>${dim?c}<#if dim?has_next>*</#if></#list>);
......
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.ModelingLanguageFamily;
......
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.se_rwth.commons.logging.Log;
......
/**
*
* ******************************************************************************
* MontiCAR Modeling Family, www.se-rwth.de
* Copyright (c) 2017, Software Engineering Group at RWTH Aachen,
* All rights reserved.
*
* This project is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this project. If not, see <http://www.gnu.org/licenses/>.
* *******************************************************************************
*/
/* (c) https://github.com/MontiCore/monticore */
package de.monticore.lang.monticar.cnnarch.mxnetgenerator;
import de.monticore.lang.monticar.cnnarch._parser.CNNArchParser;
......
/* (c) https://github.com/MontiCore/monticore */
architecture Alexnet(img_height=224, img_width=224, img_channels=3, classes=10){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......@@ -40,4 +41,4 @@ architecture Alexnet(img_height=224, img_width=224, img_channels=3, classes=10){
FullyConnected(units=10) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture ResNeXt50(img_height=224, img_width=224, img_channels=3, classes=1000){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......@@ -41,4 +42,4 @@ architecture ResNeXt50(img_height=224, img_width=224, img_channels=3, classes=10
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture ResNet152(img_height=224, img_width=224, img_channels=3, classes=1000){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......@@ -34,4 +35,4 @@ architecture ResNet152(img_height=224, img_width=224, img_channels=3, classes=10
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture ResNet34(img_height=224, img_width=224, img_channels=3, classes=1000){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......
/* (c) https://github.com/MontiCore/monticore */
architecture SequentialAlexnet(img_height=224, img_width=224, img_channels=3, classes=10){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......
/* (c) https://github.com/MontiCore/monticore */
architecture ThreeInputCNN_M14(img_height=200, img_width=300, img_channels=3, classes=3){
/*CNN used for flower grading. Model 14 of the paper.
*Title: Multi-Input Convolutional Neural Network for Flower Grading
......@@ -29,4 +30,4 @@ architecture ThreeInputCNN_M14(img_height=200, img_width=300, img_channels=3, cl
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture VGG16(img_height=224, img_width=224, img_channels=3, classes=1000){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......@@ -28,4 +29,4 @@ architecture VGG16(img_height=224, img_width=224, img_channels=3, classes=1000){
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
Alexnet data/Alexnet
VGG16 data/VGG16
ThreeInputCNN_M14 data/ThreeInputCNN_M14
ResNeXt50 data/ResNeXt50
\ No newline at end of file
ResNeXt50 data/ResNeXt50
/* (c) https://github.com/MontiCore/monticore */
architecture MultipleOutputs{
def input Q(-oo:+oo)^{10} data
def output Q(0:1)^{4} pred[2]
......@@ -18,4 +19,4 @@ architecture MultipleOutputs{
) ->
pred;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture MultipleStreams{
def input Q(-oo:+oo)^{10} data[2]
def output Q(0:1)^{4} pred[2]
......@@ -11,4 +12,4 @@ architecture MultipleStreams{
FullyConnected(units=4, no_bias=true) ->
Softmax() ->
pred[1];
}
\ No newline at end of file
}
MultipleStreams data/MultipleStreams
MultipleOutputs data/MultipleOutputs
\ No newline at end of file
MultipleOutputs data/MultipleOutputs
/* (c) https://github.com/MontiCore/monticore */
#ifndef CNNBUFFERFILE_H
#define CNNBUFFERFILE_H
......@@ -48,4 +49,4 @@ class BufferFile {
}
};
#endif // CNNBUFFERFILE_H
\ No newline at end of file
#endif // CNNBUFFERFILE_H
# (c) https://github.com/MontiCore/monticore
import mxnet as mx
import logging
import os
......
# (c) https://github.com/MontiCore/monticore
import mxnet as mx
import logging
import os
......
# (c) https://github.com/MontiCore/monticore
import mxnet as mx
import logging
import os
......
/* (c) https://github.com/MontiCore/monticore */
#ifndef CNNPREDICTOR_ALEXNET
#define CNNPREDICTOR_ALEXNET
......
/* (c) https://github.com/MontiCore/monticore */
#ifndef CNNPREDICTOR_CIFARCLASSIFIERNETWORK
#define CNNPREDICTOR_CIFARCLASSIFIERNETWORK
......
/* (c) https://github.com/MontiCore/monticore */
#ifndef CNNPREDICTOR_VGG16
#define CNNPREDICTOR_VGG16
......
# (c) https://github.com/MontiCore/monticore
import logging
import mxnet as mx
import CNNCreator_emptyConfig
......
# (c) https://github.com/MontiCore/monticore
import logging
import mxnet as mx
import CNNCreator_fullConfig
......
# (c) https://github.com/MontiCore/monticore
import logging
import mxnet as mx
import CNNCreator_simpleConfig
......
# (c) https://github.com/MontiCore/monticore
# Automatically generated file
#
# - Try to find Armadillo
......@@ -35,4 +36,4 @@ mark_as_advanced(
)
set(Armadillo_INCLUDE_DIRS ${Armadillo_INCLUDE_DIR})
set(Armadillo_LIBRARIES ${Armadillo_LIBRARY})
\ No newline at end of file
set(Armadillo_LIBRARIES ${Armadillo_LIBRARY})
/* (c) https://github.com/MontiCore/monticore */
architecture Alexnet_alt(img_height=224, img_width=224, img_channels=3, classes=10){
def input Z(0:255)^{img_channels, img_height, img_width} image
def output Q(0:1)^{classes} predictions
......@@ -50,4 +51,4 @@ architecture Alexnet_alt(img_height=224, img_width=224, img_channels=3, classes=
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture Alexnet_alt2(img_height=224, img_width=224, img_channels=3, classes=10){
def input Z(0:255)^{img_channels, img_height, img_width} image
def output Q(0:1)^{classes} predictions
......@@ -36,4 +37,4 @@ architecture Alexnet_alt2(img_height=224, img_width=224, img_channels=3, classes
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture Alexnet_alt(img_height=224, img_width=224, img_channels=3, classes=10){
def input Z(0:255)^{img_channels, img_height, img_width} image
def output Q(0:1)^{classes} predictions
......@@ -51,4 +52,4 @@ architecture Alexnet_alt(img_height=224, img_width=224, img_channels=3, classes=
Softmax() ->
OneHot(size=classes) ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture ArgumentSequenceTest {
def input Z(0:255)^{3, 224, 224} image
def output Q(0:1)^{10} predictions
......@@ -10,4 +11,4 @@ architecture ArgumentSequenceTest {
FullyConnected(units=10) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture CifarClassifierNetwork(classes=10){
def input Z(0:255)^{3, 32, 32} data
def output Q(0:1)^{classes} softmax
......@@ -32,4 +33,4 @@ architecture CifarClassifierNetwork(classes=10){
FullyConnected(units=classes) ->
Softmax() ->
softmax;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
configuration EmptyConfig{
}
/* (c) https://github.com/MontiCore/monticore */
architecture Fixed_Alexnet(){
def input Z(0:255)^{3, 224, 224} image
def output Q(0:1)^{10} predictions
......@@ -40,4 +41,4 @@ architecture Fixed_Alexnet(){
FullyConnected(units=10) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture Fixed_ThreeInputCNN_M14(){
def input Z(0:255)^{3, 200, 300} image[3]
def output Q(0:1)^{3} predictions
......@@ -24,4 +25,4 @@ architecture Fixed_ThreeInputCNN_M14(){
FullyConnected(units=3) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
configuration FullConfig{
num_epoch : 5
batch_size : 100
......
/* (c) https://github.com/MontiCore/monticore */
architecture ResNeXt50_InstanceTest(img_height=224, img_width=224, img_channels=3, classes=1000, cardinality=32){
def input Z(0:255)^{img_channels, img_height, img_width} data
def output Q(0:1)^{classes} predictions
......@@ -41,4 +42,4 @@ architecture ResNeXt50_InstanceTest(img_height=224, img_width=224, img_channels=
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}
/* (c) https://github.com/MontiCore/monticore */
architecture ResNeXt50_alt(img_height=224, img_width=224, img_channels=3, classes=1000){
def input Z(0:255)^{img_channels, img_height, img_width} image
def output Q(0:1)^{classes} predictions
......@@ -43,4 +44,4 @@ architecture ResNeXt50_alt(img_height=224, img_width=224, img_channels=3, classe
FullyConnected(units=classes) ->
Softmax() ->
predictions;
}
\ No newline at end of file
}