Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
monticore
EmbeddedMontiArc
languages
CNNTrainLang
Commits
46333043
Commit
46333043
authored
Jul 20, 2019
by
Nicola Gatto
Browse files
Checks for trained network inputs and outputs
parent
3d15a4de
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/main/java/de/monticore/lang/monticar/cnntrain/_cocos/CNNTrainCocos.java
View file @
46333043
...
...
@@ -48,11 +48,17 @@ public class CNNTrainCocos {
createChecker
().
checkAll
(
node
);
}
public
static
void
checkTrainedArchitectureCoCos
(
final
ConfigurationSymbol
configurationSymbol
)
{
CNNTrainConfigurationSymbolChecker
checker
=
new
CNNTrainConfigurationSymbolChecker
()
.
addCoCo
(
new
CheckTrainedRlNetworkHasExactlyOneInput
())
.
addCoCo
(
new
CheckTrainedRlNetworkHasExactlyOneOutput
());
checker
.
checkAll
(
configurationSymbol
);
}
public
static
void
checkCriticCocos
(
final
ConfigurationSymbol
configurationSymbol
)
{
CNNTrainConfigurationSymbolChecker
checker
=
new
CNNTrainConfigurationSymbolChecker
()
.
addCoCo
(
new
CheckCriticNetworkHasExactlyAOneDimensionalOutput
())
.
addCoCo
(
new
CheckCriticNetworkInputs
());
int
findings
=
Log
.
getFindings
().
size
();
checker
.
checkAll
(
configurationSymbol
);
}
}
\ No newline at end of file
src/main/java/de/monticore/lang/monticar/cnntrain/_cocos/CheckTrainedRlNetworkHasExactlyOneInput.java
0 → 100644
View file @
46333043
package
de.monticore.lang.monticar.cnntrain._cocos
;
import
de.monticore.lang.monticar.cnntrain._symboltable.ConfigurationSymbol
;
import
de.monticore.lang.monticar.cnntrain._symboltable.RLAlgorithm
;
import
de.monticore.lang.monticar.cnntrain.helper.ErrorCodes
;
import
de.se_rwth.commons.logging.Log
;
/**
*
*/
public
class
CheckTrainedRlNetworkHasExactlyOneInput
implements
CNNTrainConfigurationSymbolCoCo
{
@Override
public
void
check
(
ConfigurationSymbol
configurationSymbol
)
{
if
(
configurationSymbol
.
isReinforcementLearningMethod
()
&&
configurationSymbol
.
getTrainedArchitecture
().
isPresent
())
{
final
int
numberOfInputs
=
configurationSymbol
.
getTrainedArchitecture
().
get
().
getInputs
().
size
();
if
(
numberOfInputs
!=
1
)
{
final
String
networkName
=
configurationSymbol
.
getEntry
(
"rl_algorithm"
).
getValue
().
getValue
()
.
equals
(
RLAlgorithm
.
DQN
)
?
"Q-Network"
:
"Actor-Network"
;
Log
.
error
(
"x0"
+
ErrorCodes
.
TRAINED_ARCHITECTURE_ERROR
+
networkName
+
" "
+
configurationSymbol
.
getTrainedArchitecture
().
get
().
getName
()
+
" has "
+
numberOfInputs
+
" inputs but 1 is only allowed."
,
configurationSymbol
.
getSourcePosition
());
}
}
}
}
\ No newline at end of file
src/main/java/de/monticore/lang/monticar/cnntrain/_cocos/CheckTrainedRlNetworkHasExactlyOneOutput.java
0 → 100644
View file @
46333043
package
de.monticore.lang.monticar.cnntrain._cocos
;
import
de.monticore.lang.monticar.cnntrain._symboltable.ConfigurationSymbol
;
import
de.monticore.lang.monticar.cnntrain._symboltable.RLAlgorithm
;
import
de.monticore.lang.monticar.cnntrain.helper.ErrorCodes
;
import
de.se_rwth.commons.logging.Log
;
/**
*
*/
public
class
CheckTrainedRlNetworkHasExactlyOneOutput
implements
CNNTrainConfigurationSymbolCoCo
{
@Override
public
void
check
(
final
ConfigurationSymbol
configurationSymbol
)
{
if
(
configurationSymbol
.
isReinforcementLearningMethod
()
&&
configurationSymbol
.
getTrainedArchitecture
().
isPresent
())
{
final
int
numberOfOutputs
=
configurationSymbol
.
getTrainedArchitecture
().
get
().
getOutputs
().
size
();
if
(
numberOfOutputs
!=
1
)
{
final
String
networkName
=
configurationSymbol
.
getEntry
(
"rl_algorithm"
).
getValue
().
getValue
()
.
equals
(
RLAlgorithm
.
DQN
)
?
"Q-Network"
:
"Actor-Network"
;
Log
.
error
(
"x0"
+
ErrorCodes
.
TRAINED_ARCHITECTURE_ERROR
+
networkName
+
" "
+
configurationSymbol
.
getTrainedArchitecture
().
get
().
getName
()
+
" has "
+
numberOfOutputs
+
" outputs but 1 is only allowed."
,
configurationSymbol
.
getSourcePosition
());
}
}
}
}
\ No newline at end of file
src/main/java/de/monticore/lang/monticar/cnntrain/helper/ErrorCodes.java
View file @
46333043
...
...
@@ -33,4 +33,5 @@ public class ErrorCodes {
public
static
final
String
CONTRADICTING_PARAMETERS
=
"xC8858"
;
public
static
final
String
CRITIC_NETWORK_ERROR
=
"xC7100"
;
public
static
final
String
MISSING_TRAINED_ARCHITECTURE
=
"xC7101"
;
public
static
final
String
TRAINED_ARCHITECTURE_ERROR
=
"xC7102"
;
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment