From b7f790a08e67fed6672d5685ee6bab8a1d3b8891 Mon Sep 17 00:00:00 2001 From: Sebastian Nickels <snickels@foxfire.consulting> Date: Sun, 19 May 2019 21:59:35 +0200 Subject: [PATCH] Updated so that it works with the semicolon change to prepare for multiple streams --- src/main/resources/templates/gluon/CNNNet.ftl | 4 +- .../gluongenerator/GenerationTest.java | 10 +++++ src/test/resources/architectures/Alexnet.cnna | 2 +- .../resources/architectures/ResNeXt50.cnna | 2 +- .../resources/architectures/ResNet152.cnna | 2 +- .../resources/architectures/ResNet34.cnna | 2 +- .../architectures/SequentialAlexnet.cnna | 2 +- .../architectures/ThreeInputCNN_M14.cnna | 2 +- src/test/resources/architectures/VGG16.cnna | 2 +- .../ArgumentConstraintTest1.cnna | 34 -------------- .../ArgumentConstraintTest2.cnna | 34 -------------- .../ArgumentConstraintTest3.cnna | 34 -------------- .../ArgumentConstraintTest4.cnna | 34 -------------- .../ArgumentConstraintTest5.cnna | 34 -------------- .../ArgumentConstraintTest6.cnna | 34 -------------- .../invalid_tests/DuplicatedArgument.cnna | 11 ----- .../invalid_tests/DuplicatedIONames.cnna | 16 ------- .../invalid_tests/DuplicatedNames.cnna | 20 --------- .../invalid_tests/IllegalIOName.cnna | 11 ----- .../resources/invalid_tests/IllegalName.cnna | 15 ------- .../InvalidArrayAccessValue.cnna | 27 ----------- .../invalid_tests/InvalidIOShape1.cnna | 11 ----- .../invalid_tests/InvalidIOShape2.cnna | 11 ----- .../invalid_tests/InvalidInputShape.cnna | 11 ----- .../invalid_tests/InvalidRecursion.cnna | 40 ----------------- .../invalid_tests/MissingArgument.cnna | 34 -------------- .../resources/invalid_tests/MissingIO2.cnna | 11 ----- .../invalid_tests/MissingLayerOperator.cnna | 11 ----- .../resources/invalid_tests/MissingMerge.cnna | 24 ---------- .../MissingParallelBrackets.cnna | 45 ------------------- .../resources/invalid_tests/NotIOArray.cnna | 11 ----- .../invalid_tests/UnfinishedArchitecture.cnna | 15 ------- .../resources/invalid_tests/UnknownIO.cnna | 8 ---- .../invalid_tests/UnknownMethod.cnna | 11 ----- .../invalid_tests/UnknownVariableName.cnna | 11 ----- .../invalid_tests/WrongArgument.cnna | 11 ----- .../resources/invalid_tests/WrongIOType.cnna | 11 ----- .../invalid_tests/WrongRangeOperator.cnna | 11 ----- .../resources/valid_tests/Alexnet_alt.cnna | 2 +- .../resources/valid_tests/Alexnet_alt2.cnna | 2 +- .../valid_tests/ArgumentSequenceTest.cnna | 2 +- .../valid_tests/CifarClassifierNetwork.cnna | 2 +- .../resources/valid_tests/Fixed_Alexnet.cnna | 2 +- .../valid_tests/Fixed_ThreeInputCNN_M14.cnna | 2 +- .../valid_tests/MultipleOutputs.cnna | 2 +- .../valid_tests/MultipleStreams.cnna | 14 ++++++ .../valid_tests/ResNeXt50_InstanceTest.cnna | 2 +- .../resources/valid_tests/ResNeXt50_alt.cnna | 2 +- .../resources/valid_tests/ResNet152_alt.cnna | 2 +- .../valid_tests/SimpleNetworkLinear.cnna | 2 +- .../valid_tests/SimpleNetworkRelu.cnna | 2 +- .../valid_tests/SimpleNetworkSigmoid.cnna | 2 +- .../valid_tests/SimpleNetworkSoftmax.cnna | 2 +- .../valid_tests/SimpleNetworkTanh.cnna | 2 +- .../ThreeInputCNN_M14_alternative.cnna | 2 +- src/test/resources/valid_tests/data_paths.txt | 3 +- 56 files changed, 51 insertions(+), 617 deletions(-) delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest1.cnna delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest2.cnna delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest3.cnna delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest4.cnna delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest5.cnna delete mode 100644 src/test/resources/invalid_tests/ArgumentConstraintTest6.cnna delete mode 100644 src/test/resources/invalid_tests/DuplicatedArgument.cnna delete mode 100644 src/test/resources/invalid_tests/DuplicatedIONames.cnna delete mode 100644 src/test/resources/invalid_tests/DuplicatedNames.cnna delete mode 100644 src/test/resources/invalid_tests/IllegalIOName.cnna delete mode 100644 src/test/resources/invalid_tests/IllegalName.cnna delete mode 100644 src/test/resources/invalid_tests/InvalidArrayAccessValue.cnna delete mode 100644 src/test/resources/invalid_tests/InvalidIOShape1.cnna delete mode 100644 src/test/resources/invalid_tests/InvalidIOShape2.cnna delete mode 100644 src/test/resources/invalid_tests/InvalidInputShape.cnna delete mode 100644 src/test/resources/invalid_tests/InvalidRecursion.cnna delete mode 100644 src/test/resources/invalid_tests/MissingArgument.cnna delete mode 100644 src/test/resources/invalid_tests/MissingIO2.cnna delete mode 100644 src/test/resources/invalid_tests/MissingLayerOperator.cnna delete mode 100644 src/test/resources/invalid_tests/MissingMerge.cnna delete mode 100644 src/test/resources/invalid_tests/MissingParallelBrackets.cnna delete mode 100644 src/test/resources/invalid_tests/NotIOArray.cnna delete mode 100644 src/test/resources/invalid_tests/UnfinishedArchitecture.cnna delete mode 100644 src/test/resources/invalid_tests/UnknownIO.cnna delete mode 100644 src/test/resources/invalid_tests/UnknownMethod.cnna delete mode 100644 src/test/resources/invalid_tests/UnknownVariableName.cnna delete mode 100644 src/test/resources/invalid_tests/WrongArgument.cnna delete mode 100644 src/test/resources/invalid_tests/WrongIOType.cnna delete mode 100644 src/test/resources/invalid_tests/WrongRangeOperator.cnna create mode 100644 src/test/resources/valid_tests/MultipleStreams.cnna diff --git a/src/main/resources/templates/gluon/CNNNet.ftl b/src/main/resources/templates/gluon/CNNNet.ftl index c02d1732..e2c102c8 100644 --- a/src/main/resources/templates/gluon/CNNNet.ftl +++ b/src/main/resources/templates/gluon/CNNNet.ftl @@ -72,7 +72,7 @@ class Net(gluon.HybridBlock): def __init__(self, data_mean=None, data_std=None, **kwargs): super(Net, self).__init__(**kwargs) with self.name_scope(): -${tc.include(tc.architecture.body, "ARCHITECTURE_DEFINITION")} +${tc.include(tc.architecture.streams[0], "ARCHITECTURE_DEFINITION")} def hybrid_forward(self, F, x): -${tc.include(tc.architecture.body, "FORWARD_FUNCTION")} \ No newline at end of file +${tc.include(tc.architecture.streams[0], "FORWARD_FUNCTION")} \ No newline at end of file diff --git a/src/test/java/de/monticore/lang/monticar/cnnarch/gluongenerator/GenerationTest.java b/src/test/java/de/monticore/lang/monticar/cnnarch/gluongenerator/GenerationTest.java index abe45750..c8b5d6f7 100644 --- a/src/test/java/de/monticore/lang/monticar/cnnarch/gluongenerator/GenerationTest.java +++ b/src/test/java/de/monticore/lang/monticar/cnnarch/gluongenerator/GenerationTest.java @@ -128,6 +128,16 @@ public class GenerationTest extends AbstractSymtabTest { assertTrue(Log.getFindings().size() == 3); } + /* TODO: Uncomment when multiple streams are implemented + @Test + public void testMultipleStreams() throws IOException, TemplateException { + Log.getFindings().clear(); + String[] args = {"-m", "src/test/resources/valid_tests", "-r", "MultipleStreams"}; + CNNArch2GluonCli.main(args); + assertTrue(Log.getFindings().size() == 3); + } + */ + @Test public void testFullCfgGeneration() throws IOException, TemplateException { Log.getFindings().clear(); diff --git a/src/test/resources/architectures/Alexnet.cnna b/src/test/resources/architectures/Alexnet.cnna index d42958dc..048d808e 100644 --- a/src/test/resources/architectures/Alexnet.cnna +++ b/src/test/resources/architectures/Alexnet.cnna @@ -39,5 +39,5 @@ architecture Alexnet(img_height=224, img_width=224, img_channels=3, classes=10){ fc(->=2) -> FullyConnected(units=10) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/architectures/ResNeXt50.cnna b/src/test/resources/architectures/ResNeXt50.cnna index 78cf41ed..aed84f47 100644 --- a/src/test/resources/architectures/ResNeXt50.cnna +++ b/src/test/resources/architectures/ResNeXt50.cnna @@ -40,5 +40,5 @@ architecture ResNeXt50(img_height=224, img_width=224, img_channels=3, classes=10 GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/architectures/ResNet152.cnna b/src/test/resources/architectures/ResNet152.cnna index 60031f27..27d7f6ab 100644 --- a/src/test/resources/architectures/ResNet152.cnna +++ b/src/test/resources/architectures/ResNet152.cnna @@ -33,5 +33,5 @@ architecture ResNet152(img_height=224, img_width=224, img_channels=3, classes=10 GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/architectures/ResNet34.cnna b/src/test/resources/architectures/ResNet34.cnna index bf9173b0..7742f98c 100644 --- a/src/test/resources/architectures/ResNet34.cnna +++ b/src/test/resources/architectures/ResNet34.cnna @@ -31,5 +31,5 @@ architecture ResNet34(img_height=224, img_width=224, img_channels=3, classes=100 GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } diff --git a/src/test/resources/architectures/SequentialAlexnet.cnna b/src/test/resources/architectures/SequentialAlexnet.cnna index 66ad2a7c..c02983af 100644 --- a/src/test/resources/architectures/SequentialAlexnet.cnna +++ b/src/test/resources/architectures/SequentialAlexnet.cnna @@ -25,5 +25,5 @@ architecture SequentialAlexnet(img_height=224, img_width=224, img_channels=3, cl fc() -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } diff --git a/src/test/resources/architectures/ThreeInputCNN_M14.cnna b/src/test/resources/architectures/ThreeInputCNN_M14.cnna index 95f50f4c..d23221a4 100644 --- a/src/test/resources/architectures/ThreeInputCNN_M14.cnna +++ b/src/test/resources/architectures/ThreeInputCNN_M14.cnna @@ -28,5 +28,5 @@ architecture ThreeInputCNN_M14(img_height=200, img_width=300, img_channels=3, cl Relu() -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/architectures/VGG16.cnna b/src/test/resources/architectures/VGG16.cnna index 7e4ad84d..b6df512a 100644 --- a/src/test/resources/architectures/VGG16.cnna +++ b/src/test/resources/architectures/VGG16.cnna @@ -27,5 +27,5 @@ architecture VGG16(img_height=224, img_width=224, img_channels=3, classes=1000){ fc() -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest1.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest1.cnna deleted file mode 100644 index 8436e3ed..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest1.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest1(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=75, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2)) -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes, ->=true) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest2.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest2.cnna deleted file mode 100644 index 59b8611d..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest2.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest2(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=96, stride=(stride,-stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2)) -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest3.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest3.cnna deleted file mode 100644 index ee333ab9..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest3.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest3(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=64, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2), padding="valid") -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg", ?=1) -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest4.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest4.cnna deleted file mode 100644 index f06b6a8d..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest4.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest4(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=96, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2), padding=1) -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest5.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest5.cnna deleted file mode 100644 index 42446f06..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest5.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest5(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,-1), channels=96, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2), padding="same") -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/ArgumentConstraintTest6.cnna b/src/test/resources/invalid_tests/ArgumentConstraintTest6.cnna deleted file mode 100644 index e046ce45..00000000 --- a/src/test/resources/invalid_tests/ArgumentConstraintTest6.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture ArgumentConstraintTest6(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=false, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2), padding="valid") -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/DuplicatedArgument.cnna b/src/test/resources/invalid_tests/DuplicatedArgument.cnna deleted file mode 100644 index 6f885ac2..00000000 --- a/src/test/resources/invalid_tests/DuplicatedArgument.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture DuplicatedArgument(){ - def input Q(-oo:+oo)^{10} in1 - def output Q(0:1)^{2} out1 - - in1 -> - FullyConnected(units=64, units=32) -> - Tanh() -> - FullyConnected(units=2) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/DuplicatedIONames.cnna b/src/test/resources/invalid_tests/DuplicatedIONames.cnna deleted file mode 100644 index 2940f406..00000000 --- a/src/test/resources/invalid_tests/DuplicatedIONames.cnna +++ /dev/null @@ -1,16 +0,0 @@ -architecture DuplicatedIONames(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - def fc(){ - FullyConnected(units=64) -> - Tanh() - } - - in1 -> - fc() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/DuplicatedNames.cnna b/src/test/resources/invalid_tests/DuplicatedNames.cnna deleted file mode 100644 index 1fbf822b..00000000 --- a/src/test/resources/invalid_tests/DuplicatedNames.cnna +++ /dev/null @@ -1,20 +0,0 @@ -architecture DuplicatedNames(inputs=10, inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - def fc(){ - FullyConnected(units=64) -> - Tanh() - } - - def fc(){ - FullyConnected(units=64) -> - Tanh() - } - - in1 -> - fc() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/IllegalIOName.cnna b/src/test/resources/invalid_tests/IllegalIOName.cnna deleted file mode 100644 index cd2d66c6..00000000 --- a/src/test/resources/invalid_tests/IllegalIOName.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture IllegalIOName{ - def input Q(-oo:+oo)^{10} data_ - def output Q(0:1)^{2} predictions_ - - data_ -> - FullyConnected(units=64, no_bias=true) -> - Tanh() -> - FullyConnected(units=2, no_bias=true) -> - Softmax() -> - predictions_ -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/IllegalName.cnna b/src/test/resources/invalid_tests/IllegalName.cnna deleted file mode 100644 index ed807216..00000000 --- a/src/test/resources/invalid_tests/IllegalName.cnna +++ /dev/null @@ -1,15 +0,0 @@ -architecture IllegalName(inputs=10, classes=2, Tg = 1){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - def Fc(){ - FullyConnected(units=10) - } - - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/InvalidArrayAccessValue.cnna b/src/test/resources/invalid_tests/InvalidArrayAccessValue.cnna deleted file mode 100644 index 1901cd81..00000000 --- a/src/test/resources/invalid_tests/InvalidArrayAccessValue.cnna +++ /dev/null @@ -1,27 +0,0 @@ -architecture InvalidArrayAccessValue(img_height=200, img_width=300, img_channels=3, classes=3){ - def input Z(0:255)^{img_channels, img_height, img_width} image[3] - def output Q(0:1)^{classes} predictions - - def conv(kernel, channels){ - Convolution(kernel=kernel, channels=channels) -> - Relu() - } - - def inputGroup(index){ - [index] -> - conv(kernel=(3,3), channels=32, ->=3) -> - Pooling(pool_type="max", kernel=(2,2), stride=(2,2)) - } - - (image[0] | image[1] | image[2] | image[3]) -> - inputGroup(index=[0|..|2]) -> - Concatenate() -> - conv(kernel=(3,3), channels=64) -> - Pooling(pool_type="max", kernel=(2,2), stride=(2,2)) -> - - FullyConnected(units=32) -> - Relu() -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/InvalidIOShape1.cnna b/src/test/resources/invalid_tests/InvalidIOShape1.cnna deleted file mode 100644 index 3f03ce09..00000000 --- a/src/test/resources/invalid_tests/InvalidIOShape1.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture InvalidIOShape1(){ - def input Q(-oo:+oo)^{10, 2} in1 - def output Q(0:1)^{10, 2, 2, 2} out1 - - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=10) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/InvalidIOShape2.cnna b/src/test/resources/invalid_tests/InvalidIOShape2.cnna deleted file mode 100644 index 3e746f60..00000000 --- a/src/test/resources/invalid_tests/InvalidIOShape2.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture InvalidIOShape2(){ - def input Q(-oo:+oo)^{10.5} in1 - def output Q(0:1)^{-10} out1 - - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=10) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/InvalidInputShape.cnna b/src/test/resources/invalid_tests/InvalidInputShape.cnna deleted file mode 100644 index 9fd7acb1..00000000 --- a/src/test/resources/invalid_tests/InvalidInputShape.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture InvalidInputShape(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1[2] - def output Q(0:1)^{classes} out1[2] - - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/InvalidRecursion.cnna b/src/test/resources/invalid_tests/InvalidRecursion.cnna deleted file mode 100644 index 188eaa9b..00000000 --- a/src/test/resources/invalid_tests/InvalidRecursion.cnna +++ /dev/null @@ -1,40 +0,0 @@ -architecture InvalidRecursion(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - resLayer(channels = 8) -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(kernel=(1,1), channels=channels, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, channels=64, stride=2) -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2)) -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - resLayer(channels=128, ->=3) -> - resLayer(channels=256, stride=2) -> - resLayer(channels=256, ->=5) -> - resLayer(channels=512, stride=2) -> - resLayer(channels=512, ->=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} diff --git a/src/test/resources/invalid_tests/MissingArgument.cnna b/src/test/resources/invalid_tests/MissingArgument.cnna deleted file mode 100644 index 88441c4e..00000000 --- a/src/test/resources/invalid_tests/MissingArgument.cnna +++ /dev/null @@ -1,34 +0,0 @@ -architecture MissingArgument(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 - - def conv(kernel, channels, stride=1, act=true){ - Convolution(kernel=(kernel,kernel), channels=channels, stride=(stride,stride)) -> - BatchNorm() -> - Relu(?=act) - } - def skip(channels, stride){ - Convolution(channels=96, stride=(stride,stride)) -> - BatchNorm() - } - def resLayer(channels, stride=1){ - ( - conv(kernel=3, channels=channels, stride=stride) -> - conv(kernel=3, channels=channels, stride=stride, act=false) - | - skip(channels=channels, stride=stride, ?=(stride!=1)) - ) -> - Add() -> - Relu() - } - - image -> - conv(kernel=7, stride=2) -> - Pooling(pool_type="max") -> - resLayer(channels=64, ->=3) -> - resLayer(channels=128, stride=2) -> - GlobalPooling(pool_type="avg") -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/MissingIO2.cnna b/src/test/resources/invalid_tests/MissingIO2.cnna deleted file mode 100644 index c82202cf..00000000 --- a/src/test/resources/invalid_tests/MissingIO2.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture MissingIO2(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1[2] - def output Q(0:1)^{classes} out1[2] - - in1[0] -> - FullyConnected(units=64, no_bias=true) -> - Tanh() -> - FullyConnected(units=classes, no_bias=true) -> - Softmax() -> - out1[0] -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/MissingLayerOperator.cnna b/src/test/resources/invalid_tests/MissingLayerOperator.cnna deleted file mode 100644 index 6cea4a6e..00000000 --- a/src/test/resources/invalid_tests/MissingLayerOperator.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture MissingLayerOperator(){ - def input Q(-oo:+oo)^{10} in1 - def output Q(0:1)^{2} out1 - - in1 -> - FullyConnected(units=64, no_bias=true) -> - Tanh() - FullyConnected(units=2, no_bias=true) - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/MissingMerge.cnna b/src/test/resources/invalid_tests/MissingMerge.cnna deleted file mode 100644 index d2fb2e20..00000000 --- a/src/test/resources/invalid_tests/MissingMerge.cnna +++ /dev/null @@ -1,24 +0,0 @@ -architecture MissingMerge(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - ( - ( - FullyConnected(units=16) - | - FullyConnected(units=16) - ) - | - ( - FullyConnected(units=16) - | - FullyConnected(units=16) - ) - ) -> - Add() -> - Tanh() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/MissingParallelBrackets.cnna b/src/test/resources/invalid_tests/MissingParallelBrackets.cnna deleted file mode 100644 index e8cacb56..00000000 --- a/src/test/resources/invalid_tests/MissingParallelBrackets.cnna +++ /dev/null @@ -1,45 +0,0 @@ -architecture MissingParallelBrackets(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 - - def conv(kernel, channels, hasPool=true, convStride=(1,1)){ - Convolution(kernel=kernel, channels=channels, stride=convStride) -> - Relu() -> - Pooling(pool_type="max", kernel=(3,3), stride=(2,2), ?=hasPool) - } - def fc(){ - FullyConnected(units=4096) -> - Relu() -> - Dropout() - } - - image -> - conv(kernel=(11,11), channels=96, convStride=(4,4)) -> - Lrn(nsize=5, alpha=0.0001, beta=0.75) -> - - SplitData(index=0, n=2) -> - conv(kernel=(5,5), channels=128) -> - Lrn(nsize=5, alpha=0.0001, beta=0.75) - | - SplitData(index=1, n=2) -> - conv(kernel=(5,5), channels=128) -> - Lrn(nsize=5, alpha=0.0001, beta=0.75) - -> - - conv(kernel=(3,3), channels=384 ,hasPool=false) -> - - SplitData(index=0, n=2) -> - conv(kernel=(3,3), channels=192, hasPool=false) -> - conv(kernel=(3,3), channels=128) - | - SplitData(index=1, n=2) -> - conv(kernel=(3,3), channels=192, hasPool=false) -> - conv(kernel=(3,3), channels=128) - -> - - fc() -> - fc() -> - FullyConnected(units=classes) -> - Softmax() -> - predictions -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/NotIOArray.cnna b/src/test/resources/invalid_tests/NotIOArray.cnna deleted file mode 100644 index a1f16d82..00000000 --- a/src/test/resources/invalid_tests/NotIOArray.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture NotIOArray(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1[1] -> - FullyConnected(units=64, no_bias=true) -> - Tanh() -> - FullyConnected(units=classes, no_bias=true) -> - Softmax() -> - out1[0] -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/UnfinishedArchitecture.cnna b/src/test/resources/invalid_tests/UnfinishedArchitecture.cnna deleted file mode 100644 index 2f806bbd..00000000 --- a/src/test/resources/invalid_tests/UnfinishedArchitecture.cnna +++ /dev/null @@ -1,15 +0,0 @@ -architecture UnfinishedArchitecture(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - FullyConnected(units=64, no_bias=true) -> - Tanh() -> - ( - FullyConnected(units=classes, no_bias=true) -> - Softmax() -> - out1 - | - - ) -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/UnknownIO.cnna b/src/test/resources/invalid_tests/UnknownIO.cnna deleted file mode 100644 index 40987086..00000000 --- a/src/test/resources/invalid_tests/UnknownIO.cnna +++ /dev/null @@ -1,8 +0,0 @@ -architecture UnknownIO(){ - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=10) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/UnknownMethod.cnna b/src/test/resources/invalid_tests/UnknownMethod.cnna deleted file mode 100644 index ec87f5e4..00000000 --- a/src/test/resources/invalid_tests/UnknownMethod.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture UnknownMethod(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - FllyConnected(units=64, no_bias=true) -> - Tanh() -> - FullyConnected(units=classes, no_bias=true) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/UnknownVariableName.cnna b/src/test/resources/invalid_tests/UnknownVariableName.cnna deleted file mode 100644 index 9f79070a..00000000 --- a/src/test/resources/invalid_tests/UnknownVariableName.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture UnknownVariableName(inputs=10){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{2} out1 - - in1 -> - FullyConnected(units=64) -> - Tanh() -> - FullyConnected(units=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/WrongArgument.cnna b/src/test/resources/invalid_tests/WrongArgument.cnna deleted file mode 100644 index 893b4ce5..00000000 --- a/src/test/resources/invalid_tests/WrongArgument.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture WrongArgument(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - FullyConnected(units=64, bias=true) -> - Tanh(asd=1) -> - FullyConnected(unit=classes) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/WrongIOType.cnna b/src/test/resources/invalid_tests/WrongIOType.cnna deleted file mode 100644 index 11dae442..00000000 --- a/src/test/resources/invalid_tests/WrongIOType.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture WrongIOType(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - FullyConnected(units=64, no_bias=true) -> - Tanh() -> - FullyConnected(units=classes, no_bias=true) -> - Relu() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/invalid_tests/WrongRangeOperator.cnna b/src/test/resources/invalid_tests/WrongRangeOperator.cnna deleted file mode 100644 index d6ddac77..00000000 --- a/src/test/resources/invalid_tests/WrongRangeOperator.cnna +++ /dev/null @@ -1,11 +0,0 @@ -architecture WrongRangeOperator(inputs=10, classes=2){ - def input Q(-oo:+oo)^{inputs} in1 - def output Q(0:1)^{classes} out1 - - in1 -> - FullyConnected(units=[64->..|65]) -> - Tanh() -> - FullyConnected(units=[classes |..-> classes + 1] ) -> - Softmax() -> - out1 -} \ No newline at end of file diff --git a/src/test/resources/valid_tests/Alexnet_alt.cnna b/src/test/resources/valid_tests/Alexnet_alt.cnna index 9a27ff06..edb3e404 100644 --- a/src/test/resources/valid_tests/Alexnet_alt.cnna +++ b/src/test/resources/valid_tests/Alexnet_alt.cnna @@ -49,5 +49,5 @@ architecture Alexnet_alt(img_height=224, img_width=224, img_channels=3, classes= Dropout() -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/Alexnet_alt2.cnna b/src/test/resources/valid_tests/Alexnet_alt2.cnna index fab6f88f..66248a9a 100644 --- a/src/test/resources/valid_tests/Alexnet_alt2.cnna +++ b/src/test/resources/valid_tests/Alexnet_alt2.cnna @@ -35,5 +35,5 @@ architecture Alexnet_alt2(img_height=224, img_width=224, img_channels=3, classes fc(-> = 2) -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/ArgumentSequenceTest.cnna b/src/test/resources/valid_tests/ArgumentSequenceTest.cnna index 28e95e1f..bf695c4a 100644 --- a/src/test/resources/valid_tests/ArgumentSequenceTest.cnna +++ b/src/test/resources/valid_tests/ArgumentSequenceTest.cnna @@ -9,5 +9,5 @@ architecture ArgumentSequenceTest { Concatenate() -> FullyConnected(units=10) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/CifarClassifierNetwork.cnna b/src/test/resources/valid_tests/CifarClassifierNetwork.cnna index 5eba0140..25f35115 100644 --- a/src/test/resources/valid_tests/CifarClassifierNetwork.cnna +++ b/src/test/resources/valid_tests/CifarClassifierNetwork.cnna @@ -31,5 +31,5 @@ architecture CifarClassifierNetwork(classes=10){ Dropout()-> FullyConnected(units=classes) -> Softmax() -> - softmax + softmax; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/Fixed_Alexnet.cnna b/src/test/resources/valid_tests/Fixed_Alexnet.cnna index 656e6186..992a3adb 100644 --- a/src/test/resources/valid_tests/Fixed_Alexnet.cnna +++ b/src/test/resources/valid_tests/Fixed_Alexnet.cnna @@ -39,5 +39,5 @@ architecture Fixed_Alexnet(){ fc(->=2) -> FullyConnected(units=10) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/Fixed_ThreeInputCNN_M14.cnna b/src/test/resources/valid_tests/Fixed_ThreeInputCNN_M14.cnna index 8fe709e1..f65be374 100644 --- a/src/test/resources/valid_tests/Fixed_ThreeInputCNN_M14.cnna +++ b/src/test/resources/valid_tests/Fixed_ThreeInputCNN_M14.cnna @@ -23,5 +23,5 @@ architecture Fixed_ThreeInputCNN_M14(){ Relu() -> FullyConnected(units=3) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/MultipleOutputs.cnna b/src/test/resources/valid_tests/MultipleOutputs.cnna index 2682693f..a7b7eff8 100644 --- a/src/test/resources/valid_tests/MultipleOutputs.cnna +++ b/src/test/resources/valid_tests/MultipleOutputs.cnna @@ -16,6 +16,6 @@ architecture MultipleOutputs{ FullyConnected(units=4, no_bias=true) -> Softmax() ) -> - pred + pred; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/MultipleStreams.cnna b/src/test/resources/valid_tests/MultipleStreams.cnna new file mode 100644 index 00000000..e0c5010a --- /dev/null +++ b/src/test/resources/valid_tests/MultipleStreams.cnna @@ -0,0 +1,14 @@ +architecture MultipleStreams{ + def input Q(-oo:+oo)^{10} data[2] + def output Q(0:1)^{4} pred[2] + + data[0] -> + FullyConnected(units=4, no_bias=true) -> + Softmax() -> + pred[0]; + + data[1] -> + FullyConnected(units=4, no_bias=true) -> + Softmax() -> + pred[1]; +} \ No newline at end of file diff --git a/src/test/resources/valid_tests/ResNeXt50_InstanceTest.cnna b/src/test/resources/valid_tests/ResNeXt50_InstanceTest.cnna index ad939bff..07b67e07 100644 --- a/src/test/resources/valid_tests/ResNeXt50_InstanceTest.cnna +++ b/src/test/resources/valid_tests/ResNeXt50_InstanceTest.cnna @@ -40,5 +40,5 @@ architecture ResNeXt50_InstanceTest(img_height=224, img_width=224, img_channels= GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/ResNeXt50_alt.cnna b/src/test/resources/valid_tests/ResNeXt50_alt.cnna index 6fa681bd..f3afac0e 100644 --- a/src/test/resources/valid_tests/ResNeXt50_alt.cnna +++ b/src/test/resources/valid_tests/ResNeXt50_alt.cnna @@ -42,5 +42,5 @@ architecture ResNeXt50_alt(img_height=224, img_width=224, img_channels=3, classe GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/ResNet152_alt.cnna b/src/test/resources/valid_tests/ResNet152_alt.cnna index dfba32db..23c06015 100644 --- a/src/test/resources/valid_tests/ResNet152_alt.cnna +++ b/src/test/resources/valid_tests/ResNet152_alt.cnna @@ -36,5 +36,5 @@ architecture ResNet152_alt(img_height=224, img_width=224, img_channels=3, classe GlobalPooling(pool_type="avg") -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/SimpleNetworkLinear.cnna b/src/test/resources/valid_tests/SimpleNetworkLinear.cnna index cbb8a38b..2eabd335 100644 --- a/src/test/resources/valid_tests/SimpleNetworkLinear.cnna +++ b/src/test/resources/valid_tests/SimpleNetworkLinear.cnna @@ -6,5 +6,5 @@ architecture SimpleNetworkLinear(inputs=10, classes=2){ FullyConnected(units=64, no_bias=true) -> Tanh() -> FullyConnected(units=classes, no_bias=true) -> - out1 + out1; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/SimpleNetworkRelu.cnna b/src/test/resources/valid_tests/SimpleNetworkRelu.cnna index 9d8354ce..459187c7 100644 --- a/src/test/resources/valid_tests/SimpleNetworkRelu.cnna +++ b/src/test/resources/valid_tests/SimpleNetworkRelu.cnna @@ -7,5 +7,5 @@ architecture SimpleNetworkRelu(inputs=10, classes=2){ Tanh() -> FullyConnected(units=classes, no_bias=true) -> Relu() -> - out1 + out1; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/SimpleNetworkSigmoid.cnna b/src/test/resources/valid_tests/SimpleNetworkSigmoid.cnna index 08098a6b..d938be2c 100644 --- a/src/test/resources/valid_tests/SimpleNetworkSigmoid.cnna +++ b/src/test/resources/valid_tests/SimpleNetworkSigmoid.cnna @@ -7,5 +7,5 @@ architecture SimpleNetworkSigmoid(inputs=10, classes=2){ Tanh() -> FullyConnected(units=classes, no_bias=true) -> Sigmoid() -> - out1 + out1; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/SimpleNetworkSoftmax.cnna b/src/test/resources/valid_tests/SimpleNetworkSoftmax.cnna index 5c0643c8..2feb4f72 100644 --- a/src/test/resources/valid_tests/SimpleNetworkSoftmax.cnna +++ b/src/test/resources/valid_tests/SimpleNetworkSoftmax.cnna @@ -7,5 +7,5 @@ architecture SimpleNetworkSoftmax(inputs=10, classes=2){ Tanh() -> FullyConnected(units=classes, no_bias=true) -> Softmax() -> - out1 + out1; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/SimpleNetworkTanh.cnna b/src/test/resources/valid_tests/SimpleNetworkTanh.cnna index bd1ffec3..f62e20e4 100644 --- a/src/test/resources/valid_tests/SimpleNetworkTanh.cnna +++ b/src/test/resources/valid_tests/SimpleNetworkTanh.cnna @@ -7,5 +7,5 @@ architecture SimpleNetworkTanh(inputs=10, classes=2){ Tanh() -> FullyConnected(units=classes, no_bias=true) -> Tanh() -> - out1 + out1; } \ No newline at end of file diff --git a/src/test/resources/valid_tests/ThreeInputCNN_M14_alternative.cnna b/src/test/resources/valid_tests/ThreeInputCNN_M14_alternative.cnna index 5b73e1d1..054a53c0 100644 --- a/src/test/resources/valid_tests/ThreeInputCNN_M14_alternative.cnna +++ b/src/test/resources/valid_tests/ThreeInputCNN_M14_alternative.cnna @@ -28,5 +28,5 @@ architecture ThreeInputCNN_M14_alternative(img_height=200, img_width=300, img_ch Relu() -> FullyConnected(units=classes) -> Softmax() -> - predictions + predictions; } diff --git a/src/test/resources/valid_tests/data_paths.txt b/src/test/resources/valid_tests/data_paths.txt index 25531c98..877fea8a 100644 --- a/src/test/resources/valid_tests/data_paths.txt +++ b/src/test/resources/valid_tests/data_paths.txt @@ -3,4 +3,5 @@ CifarClassifierNetwork data/CifarClassifierNetwork ThreeInputCNN_M14 data/ThreeInputCNN_M14 Alexnet data/Alexnet MultipleOutputs data/MultipleOutputs -ResNeXt50 data/ResNeXt50 \ No newline at end of file +ResNeXt50 data/ResNeXt50 +MultipleStreams data/MultipleStreams \ No newline at end of file -- GitLab