From: Piotr Kosko/Tizen API (PLT) /SRPOL/Engineer/Samsung Electronics Date: Thu, 24 Mar 2022 12:11:15 +0000 (+0100) Subject: [ML][Train] Integrated createModel methods and fixes few issues X-Git-Tag: submit/tizen/20220325.070959^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e26763eefac3be17b640a3a39f5042d7f7bcb176;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [ML][Train] Integrated createModel methods and fixes few issues [ACR] https://code.sec.samsung.net/jira/browse/TWDAPI-285 [Verification] Code compiles. Checked in chrome console. New enum values works and createModel method accepts configFile as param. Change-Id: I41aceb2aca5cf345628f5e6c083e0c57e99f0a03 --- diff --git a/src/ml/js/ml_trainer.js b/src/ml/js/ml_trainer.js index e31a2414..80876815 100755 --- a/src/ml/js/ml_trainer.js +++ b/src/ml/js/ml_trainer.js @@ -29,7 +29,7 @@ var DatasetType = { }; var LayerType = { - LAYER_IN: 'LAYER_IN', + LAYER_IN: 'LAYER_INPUT', LAYER_FC: 'LAYER_FC', LAYER_BN: 'LAYER_BN', LAYER_CONV2D: 'LAYER_CONV2D', @@ -39,12 +39,21 @@ var LayerType = { LAYER_ADDITION: 'LAYER_ADDITION', LAYER_CONCAT: 'LAYER_CONCAT', LAYER_MULTIOUT: 'LAYER_MULTIOUT', + LAYER_EMBEDDING: 'LAYER_EMBEDDING', + LAYER_RNN: 'LAYER_RNN', + LAYER_LSTM: 'LAYER_LSTM', + LAYER_SPLIT: 'LAYER_SPLIT', + LAYER_GRU: 'LAYER_GRU', + LAYER_PERMUTE: 'LAYER_PERMUTE', + LAYER_DROPOUT: 'LAYER_DROPOUT', + LAYER_BACKBONE_NNSTREAMER: 'LAYER_BACKBONE_NNSTREAMER', + LAYER_CENTROID_KNN: 'LAYER_CENTROID_KNN', + LAYER_PREPROCESS_FLIP: 'LAYER_PREPROCESS_FLIP', + LAYER_PREPROCESS_TRANSLATE: 'LAYER_PREPROCESS_TRANSLATE', + LAYER_PREPROCESS_L2NORM: 'LAYER_PREPROCESS_L2NORM', LAYER_LOSS_MSE: 'LAYER_LOSS_MSE', LAYER_LOSS_CROSS_ENTROPY_SIGMOID: 'LAYER_LOSS_CROSS_ENTROPY_SIGMOID', LAYER_LOSS_CROSS_ENTROPY_SOFTMAX: 'LAYER_LOSS_CROSS_ENTROPY_SOFTMAX', - LAYER_BACKBONE_NNSTREAMER: 'LAYER_BACKBONE_NNSTREAMER', - LAYER_EMBEDDING: 'LAYER_EMBEDDING', - LAYER_RNN: 'LAYER_RNN', LAYER_UNKNOWN: 'LAYER_UNKNOWN' }; @@ -799,13 +808,12 @@ MachineLearningTrainer.prototype.createOptimizer = function() { }; var ValidCreateModelWithConfigurationExceptions = [ - 'InvalidValuesError', 'NotFoundError', 'SecurityError', 'AbortError' ]; -MachineLearningTrainer.prototype.createModelWithConfiguration = function() { +MachineLearningTrainer.prototype.createModel = function () { var args = validator_.validateArgs(arguments, [ { name: 'configPath', @@ -813,16 +821,17 @@ MachineLearningTrainer.prototype.createModelWithConfiguration = function() { optional: true } ]); + var nativeArgs = { + // empty by default + }; if (args.has.configPath) { try { - args.configPath = tizen.filesystem.toURI(args.configPath); + // if path seems valid pass it to native layer + nativeArgs.configPath = tizen.filesystem.toURI(args.configPath); } catch (e) { throw new WebAPIException(WebAPIException.NOT_FOUND_ERR, 'Path is invalid'); } } - var nativeArgs = { - configPath: args.configPath - }; var result = native_.callSync('MLTrainerModelCreate', nativeArgs); if (native_.isFailure(result)) { @@ -835,12 +844,3 @@ MachineLearningTrainer.prototype.createModelWithConfiguration = function() { return new Model(result.id); }; - -MachineLearningTrainer.prototype.createModel = function() { - var result = native_.callSync('MLTrainerModelCreate', {}); - if (native_.isFailure(result)) { - throw new WebAPIException(WebAPIException.AbortError, 'Could not create model'); - } - - return new Model(result.id); -}; diff --git a/src/ml/ml_utils.cc b/src/ml/ml_utils.cc index 7d7a6116..ab437c29 100644 --- a/src/ml/ml_utils.cc +++ b/src/ml/ml_utils.cc @@ -71,7 +71,7 @@ const PlatformEnum OptimizerTypeEnum{ {"OPTIMIZER_UNKNOWN", ML_TRAIN_OPTIMIZER_TYPE_UNKNOWN}}; const PlatformEnum LayerTypeEnum{ - {"LAYER_IN", ML_TRAIN_LAYER_TYPE_INPUT}, + {"LAYER_INPUT", ML_TRAIN_LAYER_TYPE_INPUT}, {"LAYER_FC", ML_TRAIN_LAYER_TYPE_FC}, {"LAYER_BN", ML_TRAIN_LAYER_TYPE_BN}, {"LAYER_CONV2D", ML_TRAIN_LAYER_TYPE_CONV2D}, @@ -83,12 +83,21 @@ const PlatformEnum LayerTypeEnum{ {"LAYER_MULTIOUT", ML_TRAIN_LAYER_TYPE_MULTIOUT}, {"LAYER_EMBEDDING", ML_TRAIN_LAYER_TYPE_EMBEDDING}, {"LAYER_RNN", ML_TRAIN_LAYER_TYPE_RNN}, + {"LAYER_LSTM", ML_TRAIN_LAYER_TYPE_LSTM}, + {"LAYER_SPLIT", ML_TRAIN_LAYER_TYPE_SPLIT}, + {"LAYER_GRU", ML_TRAIN_LAYER_TYPE_GRU}, + {"LAYER_PERMUTE", ML_TRAIN_LAYER_TYPE_PERMUTE}, + {"LAYER_DROPOUT", ML_TRAIN_LAYER_TYPE_DROPOUT}, + {"LAYER_BACKBONE_NNSTREAMER", ML_TRAIN_LAYER_TYPE_BACKBONE_NNSTREAMER}, + {"LAYER_CENTROID_KNN", ML_TRAIN_LAYER_TYPE_CENTROID_KNN}, + {"LAYER_PREPROCESS_FLIP", ML_TRAIN_LAYER_TYPE_PREPROCESS_FLIP}, + {"LAYER_PREPROCESS_TRANSLATE", ML_TRAIN_LAYER_TYPE_PREPROCESS_TRANSLATE}, + {"LAYER_PREPROCESS_L2NORM", ML_TRAIN_LAYER_TYPE_PREPROCESS_L2NORM}, {"LAYER_LOSS_MSE", ML_TRAIN_LAYER_TYPE_LOSS_MSE}, {"LAYER_LOSS_CROSS_ENTROPY_SIGMOID", ML_TRAIN_LAYER_TYPE_LOSS_CROSS_ENTROPY_SIGMOID}, {"LAYER_LOSS_CROSS_ENTROPY_SOFTMAX", ML_TRAIN_LAYER_TYPE_LOSS_CROSS_ENTROPY_SOFTMAX}, - {"LAYER_BACKBONE_NNSTREAMER", ML_TRAIN_LAYER_TYPE_BACKBONE_NNSTREAMER}, {"LAYER_UNKNOWN", ML_TRAIN_LAYER_TYPE_UNKNOWN}}; const PlatformEnum SummaryTypeEnum{