Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
E
EMADL2CPP
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
monticore
EmbeddedMontiArc
generators
EMADL2CPP
Commits
f2579cdb
Commit
f2579cdb
authored
Jun 16, 2019
by
Sebastian N.
Browse files
Options
Browse Files
Download
Plain Diff
Merge rnn into develop
parents
449d6a35
f02920c0
Pipeline
#150621
failed with stages
Changes
50
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
317 additions
and
179 deletions
+317
-179
.gitignore
.gitignore
+2
-3
.vscode/launch.json
.vscode/launch.json
+0
-11
pom.xml
pom.xml
+3
-3
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLGenerator.java
...nticore/lang/monticar/emadl/generator/EMADLGenerator.java
+2
-0
src/main/java/de/monticore/lang/monticar/emadl/generator/RewardFunctionCppGenerator.java
.../monticar/emadl/generator/RewardFunctionCppGenerator.java
+0
-3
src/test/java/de/monticore/lang/monticar/emadl/GenerationTest.java
...java/de/monticore/lang/monticar/emadl/GenerationTest.java
+2
-3
src/test/java/de/monticore/lang/monticar/emadl/IntegrationCaffe2Test.java
.../monticore/lang/monticar/emadl/IntegrationCaffe2Test.java
+1
-21
src/test/java/de/monticore/lang/monticar/emadl/IntegrationGluonTest.java
...e/monticore/lang/monticar/emadl/IntegrationGluonTest.java
+52
-0
src/test/java/de/monticore/lang/monticar/emadl/IntegrationMXNetTest.java
...e/monticore/lang/monticar/emadl/IntegrationMXNetTest.java
+0
-19
src/test/resources/models/Alexnet.emadl
src/test/resources/models/Alexnet.emadl
+1
-1
src/test/resources/models/InstanceTest/NetworkB.emadl
src/test/resources/models/InstanceTest/NetworkB.emadl
+1
-1
src/test/resources/models/InvalidLayerInput.emadl
src/test/resources/models/InvalidLayerInput.emadl
+1
-1
src/test/resources/models/MultipleInputs.cnnt
src/test/resources/models/MultipleInputs.cnnt
+11
-0
src/test/resources/models/MultipleInputs.emadl
src/test/resources/models/MultipleInputs.emadl
+24
-0
src/test/resources/models/MultipleOutputs.cnnt
src/test/resources/models/MultipleOutputs.cnnt
+9
-9
src/test/resources/models/MultipleOutputs.emadl
src/test/resources/models/MultipleOutputs.emadl
+8
-17
src/test/resources/models/MultipleOutputsOld.cnnt
src/test/resources/models/MultipleOutputsOld.cnnt
+11
-0
src/test/resources/models/MultipleOutputsOld.emadl
src/test/resources/models/MultipleOutputsOld.emadl
+29
-0
src/test/resources/models/ResNeXt50.emadl
src/test/resources/models/ResNeXt50.emadl
+1
-1
src/test/resources/models/ResNet152.emadl
src/test/resources/models/ResNet152.emadl
+1
-1
src/test/resources/models/ResNet34.emadl
src/test/resources/models/ResNet34.emadl
+1
-1
src/test/resources/models/ThreeInputCNN_M14.emadl
src/test/resources/models/ThreeInputCNN_M14.emadl
+1
-1
src/test/resources/models/VGG16.emadl
src/test/resources/models/VGG16.emadl
+1
-1
src/test/resources/models/cNNCalculator/Network.emadl
src/test/resources/models/cNNCalculator/Network.emadl
+1
-1
src/test/resources/models/cifar10/CifarNetwork.emadl
src/test/resources/models/cifar10/CifarNetwork.emadl
+1
-1
src/test/resources/models/data_paths.txt
src/test/resources/models/data_paths.txt
+6
-6
src/test/resources/models/instanceTestCifar/CifarNetwork.emadl
...est/resources/models/instanceTestCifar/CifarNetwork.emadl
+1
-1
src/test/resources/models/mnist/LeNetNetwork.emadl
src/test/resources/models/mnist/LeNetNetwork.emadl
+1
-1
src/test/resources/models/reinforcementModel/cartpole/agent/CartPoleDQN.emadl
...odels/reinforcementModel/cartpole/agent/CartPoleDQN.emadl
+1
-1
src/test/resources/models/reinforcementModel/mountaincar/agent/MountaincarActor.emadl
...inforcementModel/mountaincar/agent/MountaincarActor.emadl
+1
-1
src/test/resources/models/reinforcementModel/mountaincar/agent/MountaincarCritic.cnna
...inforcementModel/mountaincar/agent/MountaincarCritic.cnna
+1
-1
src/test/resources/models/reinforcementModel/torcs/agent/dqn/TorcsDQN.emadl
.../models/reinforcementModel/torcs/agent/dqn/TorcsDQN.emadl
+1
-1
src/test/resources/models/simpleCifar10/CifarNetwork.emadl
src/test/resources/models/simpleCifar10/CifarNetwork.emadl
+1
-1
src/test/resources/target_code/CNNCreator_cifar10_cifar10Classifier_net.py
...s/target_code/CNNCreator_cifar10_cifar10Classifier_net.py
+1
-1
src/test/resources/target_code/gluon/CNNCreator_mnist_mnistClassifier_net.py
...target_code/gluon/CNNCreator_mnist_mnistClassifier_net.py
+1
-2
src/test/resources/target_code/gluon/CNNDataLoader_mnist_mnistClassifier_net.py
...get_code/gluon/CNNDataLoader_mnist_mnistClassifier_net.py
+58
-22
src/test/resources/target_code/gluon/CNNNet_mnist_mnistClassifier_net.py
...ces/target_code/gluon/CNNNet_mnist_mnistClassifier_net.py
+19
-7
src/test/resources/target_code/gluon/CNNPredictor_mnist_mnistClassifier_net.h
...arget_code/gluon/CNNPredictor_mnist_mnistClassifier_net.h
+9
-6
src/test/resources/target_code/gluon/CNNSupervisedTrainer_mnist_mnistClassifier_net.py
...e/gluon/CNNSupervisedTrainer_mnist_mnistClassifier_net.py
+46
-25
src/test/resources/target_code/gluon/CNNTrainer_mnist_mnistClassifier_net.py
...target_code/gluon/CNNTrainer_mnist_mnistClassifier_net.py
+6
-4
src/test/resources/training_data/Cifar/test.h5
src/test/resources/training_data/Cifar/test.h5
+0
-0
src/test/resources/training_data/Cifar/test_lmdb/data.mdb
src/test/resources/training_data/Cifar/test_lmdb/data.mdb
+0
-0
src/test/resources/training_data/Cifar/test_lmdb/lock.mdb
src/test/resources/training_data/Cifar/test_lmdb/lock.mdb
+0
-0
src/test/resources/training_data/Cifar/train.h5
src/test/resources/training_data/Cifar/train.h5
+0
-0
src/test/resources/training_data/Cifar/train_lmdb/data.mdb
src/test/resources/training_data/Cifar/train_lmdb/data.mdb
+0
-0
src/test/resources/training_data/Cifar/train_lmdb/lock.mdb
src/test/resources/training_data/Cifar/train_lmdb/lock.mdb
+0
-0
src/test/resources/training_data/MultipleInputs/test.h5
src/test/resources/training_data/MultipleInputs/test.h5
+0
-0
src/test/resources/training_data/MultipleInputs/train.h5
src/test/resources/training_data/MultipleInputs/train.h5
+0
-0
src/test/resources/training_data/MultipleOutputs/test.h5
src/test/resources/training_data/MultipleOutputs/test.h5
+0
-0
src/test/resources/training_data/MultipleOutputs/train.h5
src/test/resources/training_data/MultipleOutputs/train.h5
+0
-0
No files found.
.gitignore
View file @
f2579cdb
...
...
@@ -5,7 +5,6 @@ nppBackup
.classpath
.idea
.git
*.iml
.vscode
*.iml
train.log
.vscode/launch.json
deleted
100644 → 0
View file @
449d6a35
{
"configurations"
:
[
{
"type"
:
"java"
,
"name"
:
"CodeLens (Launch) - EMADLGeneratorCli"
,
"request"
:
"launch"
,
"mainClass"
:
"de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli"
,
"projectName"
:
"embedded-montiarc-emadl-generator"
}
]
}
\ No newline at end of file
pom.xml
View file @
f2579cdb
...
...
@@ -15,10 +15,10 @@
<properties>
<!-- .. SE-Libraries .................................................. -->
<emadl.version>
0.2.
6
</emadl.version>
<emadl.version>
0.2.
8-SNAPSHOT
</emadl.version>
<CNNTrain.version>
0.3.2-SNAPSHOT
</CNNTrain.version>
<cnnarch-mxnet-generator.version>
0.2.1
5
-SNAPSHOT
</cnnarch-mxnet-generator.version>
<cnnarch-caffe2-generator.version>
0.2.1
1
-SNAPSHOT
</cnnarch-caffe2-generator.version>
<cnnarch-mxnet-generator.version>
0.2.1
6
-SNAPSHOT
</cnnarch-mxnet-generator.version>
<cnnarch-caffe2-generator.version>
0.2.1
2
-SNAPSHOT
</cnnarch-caffe2-generator.version>
<cnnarch-gluon-generator.version>
0.2.1-SNAPSHOT
</cnnarch-gluon-generator.version>
<embedded-montiarc-math-opt-generator>
0.1.4
</embedded-montiarc-math-opt-generator>
...
...
src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLGenerator.java
View file @
f2579cdb
...
...
@@ -370,6 +370,8 @@ public class EMADLGenerator {
EMADLCocos
.
checkAll
(
componentInstanceSymbol
);
if
(
architecture
.
isPresent
()){
cnnArchGenerator
.
check
(
architecture
.
get
());
String
dPath
=
null
;
Path
dataPathDefinition
=
Paths
.
get
(
getModelsPath
(),
"data_paths.txt"
);
if
(
dataPathDefinition
.
toFile
().
exists
())
{
...
...
src/main/java/de/monticore/lang/monticar/emadl/generator/RewardFunctionCppGenerator.java
View file @
f2579cdb
...
...
@@ -9,9 +9,6 @@ import de.se_rwth.commons.logging.Log;
import
java.io.IOException
;
import
java.util.Optional
;
/**
*
*/
public
class
RewardFunctionCppGenerator
implements
RewardFunctionSourceGenerator
{
public
RewardFunctionCppGenerator
()
{
}
...
...
src/test/java/de/monticore/lang/monticar/emadl/GenerationTest.java
View file @
f2579cdb
...
...
@@ -43,7 +43,6 @@ import static junit.framework.TestCase.assertTrue;
import
static
org
.
junit
.
Assert
.
assertFalse
;
public
class
GenerationTest
extends
AbstractSymtabTest
{
@Before
public
void
setUp
()
{
// ensure an empty log
...
...
@@ -143,7 +142,7 @@ public class GenerationTest extends AbstractSymtabTest {
}
@Test
public
void
testMnistClassifier
()
throws
IOException
,
TemplateException
{
public
void
testMnistClassifier
ForCaffe2
()
throws
IOException
,
TemplateException
{
Log
.
getFindings
().
clear
();
String
[]
args
=
{
"-m"
,
"src/test/resources/models/"
,
"-r"
,
"mnist.MnistClassifier"
,
"-b"
,
"CAFFE2"
,
"-f"
,
"n"
,
"-c"
,
"n"
};
EMADLGeneratorCli
.
main
(
args
);
...
...
@@ -181,7 +180,7 @@ public class GenerationTest extends AbstractSymtabTest {
"CNNCreator_mnist_mnistClassifier_net.py"
,
"CNNPredictor_mnist_mnistClassifier_net.h"
,
"CNNDataLoader_mnist_mnistClassifier_net.py"
,
"
supervised_trainer
.py"
,
"
CNNSupervisedTrainer_mnist_mnistClassifier_net
.py"
,
"mnist_mnistClassifier_net.h"
,
"HelperA.h"
,
"CNNTranslator.h"
,
...
...
src/test/java/de/monticore/lang/monticar/emadl/IntegrationCaffe2Test.java
View file @
f2579cdb
...
...
@@ -20,28 +20,8 @@
*/
package
de.monticore.lang.monticar.emadl
;
import
de.monticore.lang.monticar.emadl.generator.Backend
;
import
de.monticore.lang.monticar.emadl.generator.EMADLGenerator
;
import
de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli
;
import
de.se_rwth.commons.logging.Log
;
import
freemarker.template.TemplateException
;
import
org.junit.Before
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.Arrays
;
import
java.util.List
;
import
static
junit
.
framework
.
TestCase
.
assertTrue
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
public
class
IntegrationCaffe2Test
extends
IntegrationTest
{
public
IntegrationCaffe2Test
()
{
super
(
"CAFFE2"
,
"39253EC049D4A4E5FA0536AD34874B9D#1DBAEE1B1BD83FB7CB5F70AE91B29638#13D139510DC5681639AA91D7250288D3#1A42D4842D0664937A9F6B727BD60CEF"
);
}
}
}
\ No newline at end of file
src/test/java/de/monticore/lang/monticar/emadl/IntegrationGluonTest.java
View file @
f2579cdb
...
...
@@ -20,8 +20,60 @@
*/
package
de.monticore.lang.monticar.emadl
;
import
de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli
;
import
de.se_rwth.commons.logging.Log
;
import
org.junit.Test
;
import
java.nio.file.Files
;
import
java.nio.file.NoSuchFileException
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
static
junit
.
framework
.
TestCase
.
assertTrue
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
public
class
IntegrationGluonTest
extends
IntegrationTest
{
private
Path
multipleInputsHashFile
=
Paths
.
get
(
"./target/generated-sources-emadl/MultipleInputs.training_hash"
);
private
Path
multipleOutputsHashFile
=
Paths
.
get
(
"./target/generated-sources-emadl/MultipleOutputs.training_hash"
);
public
IntegrationGluonTest
()
{
super
(
"GLUON"
,
"39253EC049D4A4E5FA0536AD34874B9D#1DBAEE1B1BD83FB7CB5F70AE91B29638#C4C23549E737A759721D6694C75D9771#5AF0CE68E408E8C1F000E49D72AC214A"
);
}
@Test
public
void
testMultipleInputs
()
{
Log
.
getFindings
().
clear
();
deleteHashFile
(
multipleInputsHashFile
);
String
[]
args
=
{
"-m"
,
"src/test/resources/models/"
,
"-r"
,
"MultipleInputs"
,
"-b"
,
"GLUON"
};
EMADLGeneratorCli
.
main
(
args
);
assertTrue
(
Log
.
getFindings
().
isEmpty
());
}
@Test
public
void
testMultipleOutputs
()
{
Log
.
getFindings
().
clear
();
deleteHashFile
(
multipleOutputsHashFile
);
String
[]
args
=
{
"-m"
,
"src/test/resources/models/"
,
"-r"
,
"MultipleOutputs"
,
"-b"
,
"GLUON"
};
EMADLGeneratorCli
.
main
(
args
);
assertTrue
(
Log
.
getFindings
().
isEmpty
());
}
private
void
deleteHashFile
(
Path
hashFile
)
{
try
{
Files
.
delete
(
hashFile
);
}
catch
(
NoSuchFileException
e
)
{
}
catch
(
Exception
e
)
{
assertFalse
(
"Could not delete hash file"
,
true
);
}
}
}
src/test/java/de/monticore/lang/monticar/emadl/IntegrationMXNetTest.java
View file @
f2579cdb
...
...
@@ -20,25 +20,6 @@
*/
package
de.monticore.lang.monticar.emadl
;
import
de.monticore.lang.monticar.emadl.generator.Backend
;
import
de.monticore.lang.monticar.emadl.generator.EMADLGenerator
;
import
de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli
;
import
de.se_rwth.commons.logging.Log
;
import
freemarker.template.TemplateException
;
import
org.junit.Before
;
import
org.junit.Test
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.Arrays
;
import
java.util.List
;
import
static
junit
.
framework
.
TestCase
.
assertTrue
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
public
class
IntegrationMXNetTest
extends
IntegrationTest
{
public
IntegrationMXNetTest
()
{
super
(
"MXNET"
,
"39253EC049D4A4E5FA0536AD34874B9D#1DBAEE1B1BD83FB7CB5F70AE91B29638#C4C23549E737A759721D6694C75D9771#5AF0CE68E408E8C1F000E49D72AC214A"
);
...
...
src/test/resources/models/Alexnet.emadl
View file @
f2579cdb
...
...
@@ -41,7 +41,7 @@ component Alexnet{
fc(->=2) ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/InstanceTest/NetworkB.emadl
View file @
f2579cdb
...
...
@@ -18,7 +18,7 @@ component NetworkB<Z classes = 10> (Z convChannels){
Dropout
()
->
FullyConnected
(
units
=
classes
)
->
Softmax
()
->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/InvalidLayerInput.emadl
View file @
f2579cdb
...
...
@@ -27,6 +27,6 @@ component InvalidLayerInput{
fc() ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/MultipleInputs.cnnt
0 → 100644
View file @
f2579cdb
configuration MultipleInputs{
num_epoch:10
batch_size:5
context:cpu
optimizer:adam{
learning_rate:0.01
learning_rate_decay:0.8
step_size:1000
weight_decay:0.0001
}
}
src/test/resources/models/MultipleInputs.emadl
0 → 100644
View file @
f2579cdb
component MultipleInputs{
ports in Z(0:255)^{3, 32, 32} data[2],
out Q(0:1)^{10} softmax;
implementation CNN {
(
data[0] ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
FullyConnected(units=128) ->
Dropout()
|
data[1] ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
FullyConnected(units=128) ->
Dropout()
) ->
Concatenate() ->
FullyConnected(units=10) ->
Softmax() ->
softmax;
}
}
\ No newline at end of file
src/test/resources/models/MultipleOutputs.cnnt
View file @
f2579cdb
configuration MultipleOutputs{
num_epoch:10
batch_size:64
normalize:true
load_checkpoint:false
optimizer:adam{
learning_rate:0.01
learning_rate_decay:0.8
step_size:1000
}
num_epoch:10
batch_size:5
context:cpu
optimizer:adam{
learning_rate:0.01
learning_rate_decay:0.8
step_size:1000
weight_decay:0.0001
}
}
src/test/resources/models/MultipleOutputs.emadl
View file @
f2579cdb
component MultipleOutputs{
ports in
Q(-oo:+oo)^{10,1,1
} data,
out Q(0:1)^{
4
} pred[2];
ports in
Z(0:255)^{3, 32, 32
} data,
out Q(0:1)^{
10
} pred[2];
implementation CNN {
data ->
FullyConnected(units=128, no_bias=true) ->
Tanh() ->
(
FullyConnected(units=16, no_bias=true) ->
Tanh() ->
FullyConnected(units=4, no_bias=true)
|
FullyConnected(units=16, no_bias=true) ->
Tanh() ->
FullyConnected(units=4, no_bias=true)
) ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
Convolution(kernel=(5,5), channels=8, padding="valid") ->
FullyConnected(units=128) ->
Dropout() ->
FullyConnected(units=10) ->
(
[0] ->
Softmax() ->
pred[0]
|
[1] ->
Softmax() ->
pred[1]
)
)
;
}
}
\ No newline at end of file
src/test/resources/models/MultipleOutputsOld.cnnt
0 → 100644
View file @
f2579cdb
configuration MultipleOutputs{
num_epoch:10
batch_size:64
normalize:true
load_checkpoint:false
optimizer:adam{
learning_rate:0.01
learning_rate_decay:0.8
step_size:1000
}
}
src/test/resources/models/MultipleOutputsOld.emadl
0 → 100644
View file @
f2579cdb
component MultipleOutputs{
ports in Q(-oo:+oo)^{10,1,1} data,
out Q(0:1)^{4} pred[2];
implementation CNN {
data ->
FullyConnected(units=128, no_bias=true) ->
Tanh() ->
(
FullyConnected(units=16, no_bias=true) ->
Tanh() ->
FullyConnected(units=4, no_bias=true)
|
FullyConnected(units=16, no_bias=true) ->
Tanh() ->
FullyConnected(units=4, no_bias=true)
) ->
(
[0] ->
Softmax() ->
pred[0]
|
[1] ->
Softmax() ->
pred[1]
);
}
}
\ No newline at end of file
src/test/resources/models/ResNeXt50.emadl
View file @
f2579cdb
...
...
@@ -40,6 +40,6 @@ component ResNeXt50{
GlobalPooling(pool_type="avg") ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/ResNet152.emadl
View file @
f2579cdb
...
...
@@ -34,6 +34,6 @@ component ResNet152{
GlobalPooling(pool_type="avg") ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/ResNet34.emadl
View file @
f2579cdb
...
...
@@ -32,6 +32,6 @@ component ResNet34{
GlobalPooling(pool_type="avg") ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/ThreeInputCNN_M14.emadl
View file @
f2579cdb
...
...
@@ -24,7 +24,7 @@ component ThreeInputCNN_M14{
Relu() ->
FullyConnected(units=10) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/VGG16.emadl
View file @
f2579cdb
...
...
@@ -29,6 +29,6 @@ component VGG16{
fc() ->
FullyConnected(units=1000) ->
Softmax() ->
predictions
predictions
;
}
}
\ No newline at end of file
src/test/resources/models/cNNCalculator/Network.emadl
View file @
f2579cdb
...
...
@@ -14,7 +14,7 @@ component Network{
Relu
()
->
FullyConnected
(
units
=
10
)
->
Softmax
()
->
predictions
predictions
;
}
}
src/test/resources/models/cifar10/CifarNetwork.emadl
View file @
f2579cdb
...
...
@@ -34,7 +34,7 @@ component CifarNetwork<Z(2:oo) classes = 10>{
Dropout
()->
FullyConnected
(
units
=
classes
)
->
Softmax
()
->
softmax
softmax
;
}
}
\ No newline at end of file
src/test/resources/models/data_paths.txt
View file @
f2579cdb
cifar10.CifarNetwork src/test/resources/training_data
simpleCifar10.CifarNetwork src/test/resources/training_data
cNNCalculator.Network src/test/resources/training_data
MultipleOutputs data/MultipleOutputs
cifar10.CifarNetwork src/test/resources/training_data/Cifar
simpleCifar10.CifarNetwork src/test/resources/training_data/Cifar
cNNCalculator.Network src/test/resources/training_data/Cifar
InstanceTest.NetworkB data/InstanceTest.NetworkB
Alexnet data/Alexnet
ThreeInputCNN_M14 data/ThreeInputCNN_M14
VGG16 data/VGG16
ResNeXt50 data/ResNeXt50
instanceTestCifar.CifarNetwork src/test/resources/training_data
instanceTestCifar.CifarNetwork src/test/resources/training_data
/Cifar
mnist.LeNetNetwork data/mnist.LeNetNetwork
MultipleInputs src/test/resources/training_data/MultipleInputs
MultipleOutputs src/test/resources/training_data/MultipleOutputs
\ No newline at end of file
src/test/resources/models/instanceTestCifar/CifarNetwork.emadl
View file @
f2579cdb
...
...
@@ -12,7 +12,7 @@ component CifarNetwork<Z(2:oo) classes = 10>{
Dropout
()->
FullyConnected
(
units
=
classes
)
->
Softmax
()
->
softmax
softmax
;
}
}
\ No newline at end of file
src/test/resources/models/mnist/LeNetNetwork.emadl
View file @
f2579cdb
...
...
@@ -14,7 +14,7 @@ component LeNetNetwork<Z(2:oo) classes = 10>{
Relu
()
->
FullyConnected
(
units
=
classes
)
->
Softmax
()
->
predictions
predictions
;
}
}
src/test/resources/models/reinforcementModel/cartpole/agent/CartPoleDQN.emadl
View file @
f2579cdb
...
...
@@ -12,6 +12,6 @@ component CartPoleDQN {
FullyConnected
(
units
=
256
)
->
Tanh
()
->
FullyConnected
(
units
=
2
)
->
qvalues
qvalues
;
}
}
\ No newline at end of file
src/test/resources/models/reinforcementModel/mountaincar/agent/MountaincarActor.emadl
View file @
f2579cdb
...
...
@@ -13,6 +13,6 @@ component MountaincarActor {
Relu
()
->
FullyConnected
(
units
=
1
)
->
Tanh
()
->
action
action
;
}
}
\ No newline at end of file
src/test/resources/models/reinforcementModel/mountaincar/agent/MountaincarCritic.cnna
View file @
f2579cdb
...
...
@@ -8,5 +8,5 @@ implementation Critic(state, action) {
FullyConnected(units=300)
) ->
Add() ->
Relu()
Relu()
;
}
\ No newline at end of file
src/test/resources/models/reinforcementModel/torcs/agent/dqn/TorcsDQN.emadl
View file @
f2579cdb
...
...
@@ -12,6 +12,6 @@ component TorcsDQN<Z(1:oo) discrete_actions = 2> {
FullyConnected
(
units
=
256
)
->
Tanh
()
->
FullyConnected
(
units
=
discrete_actions
)
->
qvalues
qvalues
;
}
}
\ No newline at end of file
src/test/resources/models/simpleCifar10/CifarNetwork.emadl
View file @
f2579cdb
...
...
@@ -12,7 +12,7 @@ component CifarNetwork<Z(2:oo) classes = 10>{
Dropout
()->
FullyConnected
(
units
=
classes
)
->
Softmax
()
->
softmax
softmax
;
}
}
\ No newline at end of file
src/test/resources/target_code/CNNCreator_cifar10_cifar10Classifier_net.py
View file @
f2579cdb
...
...
@@ -18,7 +18,7 @@ class MyConstant(mx.init.Initializer):
class
CNNCreator_cifar10_cifar10Classifier_net
:
module
=
None
_data_dir_
=
"src/test/resources/training_data/"
_data_dir_
=
"src/test/resources/training_data/
Cifar/
"
_model_dir_
=
"model/cifar10.CifarNetwork/"
_model_prefix_
=
"model"
_input_names_
=
[
'data'
]
...
...
src/test/resources/target_code/gluon/CNNCreator_mnist_mnistClassifier_net.py
View file @
f2579cdb
...
...
@@ -43,12 +43,11 @@ class CNNCreator_mnist_mnistClassifier_net:
self
.
net
.
load_parameters
(
self
.
_model_dir_
+
param_file
)
return
lastEpoch
def
construct
(
self
,
context
,
data_mean
=
None
,
data_std
=
None
):
self
.
net
=
Net
(
data_mean
=
data_mean
,
data_std
=
data_std
)
self
.
net
.
collect_params
().
initialize
(
self
.
weight_initializer
,
ctx
=
context
)
self
.
net
.
hybridize
()
self
.
net
(
mx
.
nd
.
zeros
((
1
,)
+
self
.
_input_shapes_
[
0
],
ctx
=
context
))
self
.
net
(
mx
.
nd
.
zeros
((
1
,)
+
self
.
_input_shapes_
[
0
],
ctx
=
context
))
if
not
os
.
path
.
exists
(
self
.
_model_dir_
):
os
.
makedirs
(
self
.
_model_dir_
)
...
...
src/test/resources/target_code/gluon/CNNDataLoader_mnist_mnistClassifier_net.py
View file @
f2579cdb
...
...
@@ -3,8 +3,9 @@ import h5py
import
mxnet
as
mx
import
logging
import
sys
from
mxnet
import
nd
class
mnist_mnistClassifier_netDataLoader
:
class
CNNDataLoader_mnist_mnistClassifier_net
:
_input_names_
=
[
'image'
]
_output_names_
=
[
'predictions_label'
]
...
...
@@ -14,21 +15,38 @@ class mnist_mnistClassifier_netDataLoader:
def
load_data
(
self
,
batch_size
):
train_h5
,
test_h5
=
self
.
load_h5_files
()
data_mean
=
train_h5
[
self
.
_input_names_
[
0
]][:].
mean
(
axis
=
0
)
data_std
=
train_h5
[
self
.
_input_names_
[
0
]][:].
std
(
axis
=
0
)
+
1e-5
train_data
=
{}
data_mean
=
{}
data_std
=
{}
for
input_name
in
self
.
_input_names_
:
train_data
[
input_name
]
=
train_h5
[
input_name
]
data_mean
[
input_name
]
=
nd
.
array
(
train_h5
[
input_name
][:].
mean
(
axis
=
0
))
data_std
[
input_name
]
=
nd
.
array
(
train_h5
[
input_name
][:].
std
(
axis
=
0
)
+
1e-5
)
train_label
=
{}
for
output_name
in
self
.
_output_names_
:
train_label
[
output_name
]
=
train_h5
[
output_name
]
train_iter
=
mx
.
io
.
NDArrayIter
(
data
=
train_data
,
label
=
train_label
,
batch_size
=
batch_size
)
train_iter
=
mx
.
io
.
NDArrayIter
(
train_h5
[
self
.
_input_names_
[
0
]],
train_h5
[
self
.
_output_names_
[
0
]],
batch_size
=
batch_size
,
data_name
=
self
.
_input_names_
[
0
],
label_name
=
self
.
_output_names_
[
0
])
test_iter
=
None
if
test_h5
!=
None
:
test_iter
=
mx
.
io
.
NDArrayIter
(
test_h5
[
self
.
_input_names_
[
0
]],
test_h5
[
self
.
_output_names_
[
0
]],
batch_size
=
batch_size
,
data_name
=
self
.
_input_names_
[
0
],
label_name
=
self
.
_output_names_
[
0
])
test_data
=
{}
for
input_name
in
self
.
_input_names_
:
test_data
[
input_name
]
=
test_h5
[
input_name
]
test_label
=
{}
for
output_name
in
self
.
_output_names_
:
test_label
[
output_name
]
=
test_h5
[
output_name
]