[ITC][UTC][nntrainer][ACR-1721][Add enum for layers] 67/280767/3
authorhyunil park <hyunil46.park@samsung.com>
Mon, 5 Sep 2022 02:53:14 +0000 (11:53 +0900)
committerhyunil park <hyunil46.park@samsung.com>
Fri, 16 Sep 2022 02:53:13 +0000 (11:53 +0900)
- Add ITC and UTC for Attention, Mol Attention, Multi Head Attention, Layer Normalization
  and Positional Encoding

Change-Id: I4745d4730615f87060bff14435883910b4ac6e5d
Signed-off-by: hyunil park <hyunil46.park@samsung.com>
src/itc/nntrainer/ITs-nntrainer-common.c
src/itc/nntrainer/ITs-nntrainer-layer.c
src/utc/nntrainer/tct-nntrainer-core_mobile.h
src/utc/nntrainer/tct-nntrainer-core_tizeniot.h
src/utc/nntrainer/tct-nntrainer-core_tv.h
src/utc/nntrainer/tct-nntrainer-core_wearable.h
src/utc/nntrainer/utc-nntrainer-layer.c

index f266303c48dd97d1cb455ab9c854a9566f2dfd68..8ff71dfcef2e4dac2b0590cf536a176df8d15ea1 100755 (executable)
@@ -155,6 +155,21 @@ int Set_Layer_Property(ml_train_layer_h hTrainLayer, int nLayerEnum)
                case ML_TRAIN_LAYER_TYPE_ZONEOUTLSTMCELL:
                                                                                nRet = ml_train_layer_set_property(hTrainLayer, "name=zoneoutlstmcell", NULL);
                                                                                break;
+               case ML_TRAIN_LAYER_TYPE_ATTENTION:
+                                                                               nRet = ml_train_layer_set_property(hTrainLayer, "name=attention", NULL);
+                                                                               break;
+               case ML_TRAIN_LAYER_TYPE_MOL_ATTENTION:
+                                                                               nRet = ml_train_layer_set_property(hTrainLayer, "name=mol_attention", NULL);
+                                                                               break;
+               case ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION:
+                                                                               nRet = ml_train_layer_set_property(hTrainLayer, "name=multi_head_attention", NULL);
+                                                                               break;
+               case ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION:
+                                                                               nRet = ml_train_layer_set_property(hTrainLayer, "name=layer_normalization", NULL);
+                                                                               break;
+               case ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING:
+                                                                               nRet = ml_train_layer_set_property(hTrainLayer, "name=positional_encoding", NULL);
+                                                                               break;
                case ML_TRAIN_LAYER_TYPE_PREPROCESS_FLIP:
                                                                                nRet = ml_train_layer_set_property(hTrainLayer, "name=preprocess_flip", NULL);
                                                                                break;
index 53f86a9eb23ec40a3dc52c7b3a25dea85a5b6bf0..7241dddcade8d1d5a9823acebc7cd169cc339c11 100755 (executable)
@@ -147,6 +147,11 @@ int ITc_nntrainer_layer_create_destroy_p(void)
                ML_TRAIN_LAYER_TYPE_GRUCELL,
                ML_TRAIN_LAYER_TYPE_RNNCELL,
                ML_TRAIN_LAYER_TYPE_ZONEOUTLSTMCELL,
+               ML_TRAIN_LAYER_TYPE_ATTENTION,
+               ML_TRAIN_LAYER_TYPE_MOL_ATTENTION,
+               ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION,
+               ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION,
+               ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING,
                ML_TRAIN_LAYER_TYPE_PREPROCESS_FLIP,
                ML_TRAIN_LAYER_TYPE_PREPROCESS_TRANSLATE,
                ML_TRAIN_LAYER_TYPE_PREPROCESS_L2NORM,
@@ -215,6 +220,11 @@ int ITc_nntrainer_layer_set_property_p(void)
                  ML_TRAIN_LAYER_TYPE_GRUCELL,
                  ML_TRAIN_LAYER_TYPE_RNNCELL,
                  ML_TRAIN_LAYER_TYPE_ZONEOUTLSTMCELL,
+                 ML_TRAIN_LAYER_TYPE_ATTENTION,
+                 ML_TRAIN_LAYER_TYPE_MOL_ATTENTION,
+                 ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION,
+                 ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION,
+                 ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING,
                  ML_TRAIN_LAYER_TYPE_PREPROCESS_FLIP,
                  ML_TRAIN_LAYER_TYPE_PREPROCESS_TRANSLATE,
                  ML_TRAIN_LAYER_TYPE_PREPROCESS_L2NORM,
index 44338425bcdbf3d72c96775c9c51223102c7c12b..8e4fa63f06b2ada2372c0f8b72ad24475a17a41e 100644 (file)
@@ -120,6 +120,16 @@ extern int utc_nntrainer_layer_set_property_rnncell_p(void);
 extern int utc_nntrainer_layer_set_property_rnncell_n(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_p(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_n(void);
+extern int utc_nntrainer_layer_set_property_attention_p(void);
+extern int utc_nntrainer_layer_set_property_attention_n(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_p(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_n(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_p(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_n(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_p(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_n(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_p(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_p(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_translate_p(void);
@@ -257,6 +267,16 @@ testcase tc_array[] = {
     {"utc_nntrainer_layer_set_property_rnncell_n", utc_nntrainer_layer_set_property_rnncell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_p", utc_nntrainer_layer_set_property_zoneoutlstmcell_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_n", utc_nntrainer_layer_set_property_zoneoutlstmcell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_p", utc_nntrainer_layer_set_property_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_n", utc_nntrainer_layer_set_property_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_p", utc_nntrainer_layer_set_property_mol_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_n", utc_nntrainer_layer_set_property_mol_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_p", utc_nntrainer_layer_set_property_multi_head_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_n", utc_nntrainer_layer_set_property_multi_head_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_p", utc_nntrainer_layer_set_property_layer_normalization_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_n", utc_nntrainer_layer_set_property_layer_normalization_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_p", utc_nntrainer_layer_set_property_positional_encoding_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_n", utc_nntrainer_layer_set_property_positional_encoding_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_p", utc_nntrainer_layer_set_property_preprocess_flip_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_n", utc_nntrainer_layer_set_property_preprocess_flip_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_translate_p", utc_nntrainer_layer_set_property_preprocess_translate_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
index 8c5c77c95d670bdc5a66dda61338578e4c94ad3c..5c52a0f1405248e9f1fbcb264646d1cf148815da 100644 (file)
@@ -121,6 +121,16 @@ extern int utc_nntrainer_layer_set_property_rnncell_p(void);
 extern int utc_nntrainer_layer_set_property_rnncell_n(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_p(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_n(void);
+extern int utc_nntrainer_layer_set_property_attention_p(void);
+extern int utc_nntrainer_layer_set_property_attention_n(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_p(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_n(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_p(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_n(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_p(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_n(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_p(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_p(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_translate_p(void);
@@ -257,7 +267,17 @@ testcase tc_array[] = {
     {"utc_nntrainer_layer_set_property_rnncell_p", utc_nntrainer_layer_set_property_rnncell_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_rnncell_n", utc_nntrainer_layer_set_property_rnncell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_p", utc_nntrainer_layer_set_property_zoneoutlstmcell_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
-    {"utc_nntrainer_layer_set_property_zoneoutlstmcell_n", utc_nntrainer_layer_set_property_zoneoutlstmcell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},              
+    {"utc_nntrainer_layer_set_property_zoneoutlstmcell_n", utc_nntrainer_layer_set_property_zoneoutlstmcell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_p", utc_nntrainer_layer_set_property_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_n", utc_nntrainer_layer_set_property_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_p", utc_nntrainer_layer_set_property_mol_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_n", utc_nntrainer_layer_set_property_mol_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_p", utc_nntrainer_layer_set_property_multi_head_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_n", utc_nntrainer_layer_set_property_multi_head_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_p", utc_nntrainer_layer_set_property_layer_normalization_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_n", utc_nntrainer_layer_set_property_layer_normalization_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_p", utc_nntrainer_layer_set_property_positional_encoding_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_n", utc_nntrainer_layer_set_property_positional_encoding_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_p", utc_nntrainer_layer_set_property_preprocess_flip_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_n", utc_nntrainer_layer_set_property_preprocess_flip_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_translate_p", utc_nntrainer_layer_set_property_preprocess_translate_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
index 9a236dd5b4398cee6ddc21355bb93b7d2452a20f..231713036f09888e9d778a87dea6e3cfc2360e4e 100644 (file)
@@ -121,6 +121,16 @@ extern int utc_nntrainer_layer_set_property_rnncell_p(void);
 extern int utc_nntrainer_layer_set_property_rnncell_n(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_p(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_n(void);
+extern int utc_nntrainer_layer_set_property_attention_p(void);
+extern int utc_nntrainer_layer_set_property_attention_n(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_p(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_n(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_p(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_n(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_p(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_n(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_p(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_p(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_translate_p(void);
@@ -258,6 +268,16 @@ testcase tc_array[] = {
     {"utc_nntrainer_layer_set_property_rnncell_n", utc_nntrainer_layer_set_property_rnncell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_p", utc_nntrainer_layer_set_property_zoneoutlstmcell_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_n", utc_nntrainer_layer_set_property_zoneoutlstmcell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},    
+    {"utc_nntrainer_layer_set_property_attention_p", utc_nntrainer_layer_set_property_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_n", utc_nntrainer_layer_set_property_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_p", utc_nntrainer_layer_set_property_mol_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_n", utc_nntrainer_layer_set_property_mol_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_p", utc_nntrainer_layer_set_property_multi_head_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_n", utc_nntrainer_layer_set_property_multi_head_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_p", utc_nntrainer_layer_set_property_layer_normalization_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_n", utc_nntrainer_layer_set_property_layer_normalization_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_p", utc_nntrainer_layer_set_property_positional_encoding_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_n", utc_nntrainer_layer_set_property_positional_encoding_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup}
     {"utc_nntrainer_layer_set_property_preprocess_flip_p", utc_nntrainer_layer_set_property_preprocess_flip_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_n", utc_nntrainer_layer_set_property_preprocess_flip_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_translate_p", utc_nntrainer_layer_set_property_preprocess_translate_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
index ab30fa1ebc9351c22b5375bfeb2acdc4a382ce5a..4d424df41058b49ca133b56052afde43d49f9cbe 100644 (file)
@@ -121,6 +121,16 @@ extern int utc_nntrainer_layer_set_property_rnncell_p(void);
 extern int utc_nntrainer_layer_set_property_rnncell_n(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_p(void);
 extern int utc_nntrainer_layer_set_property_zoneoutlstmcell_n(void);
+extern int utc_nntrainer_layer_set_property_attention_p(void);
+extern int utc_nntrainer_layer_set_property_attention_n(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_p(void);
+extern int utc_nntrainer_layer_set_property_mol_attention_n(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_p(void);
+extern int utc_nntrainer_layer_set_property_multi_head_attention_n(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_p(void);
+extern int utc_nntrainer_layer_set_property_layer_normalization_n(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_p(void);
+extern int utc_nntrainer_layer_set_property_positional_encoding_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_p(void);
 extern int utc_nntrainer_layer_set_property_preprocess_flip_n(void);
 extern int utc_nntrainer_layer_set_property_preprocess_translate_p(void);
@@ -258,6 +268,16 @@ testcase tc_array[] = {
     {"utc_nntrainer_layer_set_property_rnncell_n", utc_nntrainer_layer_set_property_rnncell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_p", utc_nntrainer_layer_set_property_zoneoutlstmcell_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_zoneoutlstmcell_n", utc_nntrainer_layer_set_property_zoneoutlstmcell_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_p", utc_nntrainer_layer_set_property_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_attention_n", utc_nntrainer_layer_set_property_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_p", utc_nntrainer_layer_set_property_mol_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_mol_attention_n", utc_nntrainer_layer_set_property_mol_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_p", utc_nntrainer_layer_set_property_multi_head_attention_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_multi_head_attention_n", utc_nntrainer_layer_set_property_multi_head_attention_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_p", utc_nntrainer_layer_set_property_layer_normalization_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_layer_normalization_n", utc_nntrainer_layer_set_property_layer_normalization_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_p", utc_nntrainer_layer_set_property_positional_encoding_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
+    {"utc_nntrainer_layer_set_property_positional_encoding_n", utc_nntrainer_layer_set_property_positional_encoding_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_p", utc_nntrainer_layer_set_property_preprocess_flip_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_flip_n", utc_nntrainer_layer_set_property_preprocess_flip_n, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
     {"utc_nntrainer_layer_set_property_preprocess_translate_p", utc_nntrainer_layer_set_property_preprocess_translate_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
index 77cec7acf53944115c29272974ce32dacf222a80..0c56477eeeba7d8066544e77fc664f4fffc8db8e 100644 (file)
@@ -103,6 +103,11 @@ int utc_nntrainer_layer_create_p2(void)
       ML_TRAIN_LAYER_TYPE_GRUCELL,
       ML_TRAIN_LAYER_TYPE_RNNCELL,
       ML_TRAIN_LAYER_TYPE_ZONEOUTLSTMCELL,
+      ML_TRAIN_LAYER_TYPE_ATTENTION,
+      ML_TRAIN_LAYER_TYPE_MOL_ATTENTION,
+      ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION,
+      ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION,
+      ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING,
       ML_TRAIN_LAYER_TYPE_PREPROCESS_FLIP,
       ML_TRAIN_LAYER_TYPE_PREPROCESS_TRANSLATE,
       ML_TRAIN_LAYER_TYPE_PREPROCESS_L2NORM,
@@ -1355,6 +1360,267 @@ int utc_nntrainer_layer_set_property_zoneoutlstmcell_n(void)
   return 0;
 }
 
+/**
+ * @brief function utc_nntrainer_layer_set_property_attention_p
+ * @since_tizen 7.0
+ * @description set property with 7.0 attention layer
+ */
+int utc_nntrainer_layer_set_property_attention_p(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_ATTENTION);
+  status = ml_train_layer_set_property(layer, "name=attention", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_eq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_attention_n
+ * @since_tizen 7.0
+ * @description set property with 7.0 attention layer
+ */
+int utc_nntrainer_layer_set_property_attention_n(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_ATTENTION);
+  status = ml_train_layer_set_property(layer, "unknown_property=unknown_property", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_neq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_mol_attention_p
+ * @since_tizen 7.0
+ * @description set property with 7.0 mol attention layer
+ */
+int utc_nntrainer_layer_set_property_mol_attention_p(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_MOL_ATTENTION);
+  status = ml_train_layer_set_property(layer, "name=mol_attention", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_eq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_mol_attention_n
+ * @since_tizen 7.0
+ * @description set property with 7.0 mol attention layer
+ */
+int utc_nntrainer_layer_set_property_mol_attention_n(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_MOL_ATTENTION);
+  status = ml_train_layer_set_property(layer, "unknown_property=unknown_property", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_neq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_multi_head_attention_p
+ * @since_tizen 7.0
+ * @description set property with 7.0 multi head attention layer
+ */
+int utc_nntrainer_layer_set_property_multi_head_attention_p(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION);
+  status = ml_train_layer_set_property(layer, "name=multi_head_attention", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_eq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_multi_head_attention_n
+ * @since_tizen 7.0
+ * @description set property with 7.0 multi head attention layer
+ */
+int utc_nntrainer_layer_set_property_multi_head_attention_n(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_MULTI_HEAD_ATTENTION);
+  status = ml_train_layer_set_property(layer, "unknown_property=unknown_property", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_neq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_layer_normalization_p
+ * @since_tizen 7.0
+ * @description set property with 7.0 layer normalization layer
+ */
+int utc_nntrainer_layer_set_property_layer_normalization_p(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION);
+  status = ml_train_layer_set_property(layer, "name=layer_normalization", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_eq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_layer_normalization_n
+ * @since_tizen 7.0
+ * @description set property with 7.0 multi layer normalization layer
+ */
+int utc_nntrainer_layer_set_property_layer_normalization_n(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_LAYER_NORMALIZATION);
+  status = ml_train_layer_set_property(layer, "unknown_property=unknown_property", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_neq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_positional_encoding_p
+ * @since_tizen 7.0
+ * @description set property with 7.0 positional encoding layer
+ */
+int utc_nntrainer_layer_set_property_positional_encoding_p(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING);
+  status = ml_train_layer_set_property(layer, "name=positional_encoding", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_eq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
+/**
+ * @brief function utc_nntrainer_layer_set_property_positional_encoding_n
+ * @since_tizen 7.0
+ * @description set property with 7.0 positional encoding layer
+ */
+int utc_nntrainer_layer_set_property_positional_encoding_n(void)
+{
+  ml_train_layer_create(&layer, ML_TRAIN_LAYER_TYPE_POSITIONAL_ENCODING);
+  status = ml_train_layer_set_property(layer, "unknown_property=unknown_property", NULL);
+  if (train_supported == false)
+  {
+    assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+  }
+  else
+  {
+    assert_neq(status, ML_ERROR_NONE);
+  }
+  if (layer != NULL)
+  {
+    ml_train_layer_destroy(layer);
+    layer = NULL;
+  }
+
+  return 0;
+}
+
 /**
  * @brief function utc_nntrainer_layer_set_property_preprocess_flip_p
  * @since_tizen 6.5