SET(TC_SOURCES
utc-nntrainer-dataset.c
utc-nntrainer-layer.c
+ utc-nntrainer-lr-scheduler.c
utc-nntrainer-optimizer.c
utc-nntrainer-model.c
)
ml_train_model_set_dataset
ml_train_model_get_input_tensors_info
ml_train_model_get_output_tensors_info
-ml_train_model_save
-ml_train_model_load
ml_train_layer_create
-ml_train_layer_set_property
ml_train_layer_destroy
+ml_train_layer_set_property
ml_train_optimizer_create
-ml_train_optimizer_set_property
ml_train_optimizer_destroy
+ml_train_optimizer_set_property
+ml_train_optimizer_set_lr_scheduler
+ml_train_lr_scheduler_create
+ml_train_lr_scheduler_destroy
+ml_train_lr_scheduler_set_property
ml_train_dataset_create_with_generator
+ml_train_dataset_create
+ml_train_dataset_add_generator
+ml_train_dataset_add_file
ml_train_dataset_create_with_file
-ml_train_dataset_set_property
ml_train_dataset_destroy
+ml_train_dataset_set_property
+ml_train_dataset_set_property_for_mode
+ml_train_model_save
+ml_train_model_load
+ml_train_model_get_layer
+ml_train_model_get_weight
extern int utc_nntrainer_optimizer_destroy_n(void);
extern int utc_nntrainer_optimizer_set_property_p(void);
extern int utc_nntrainer_optimizer_set_property_n(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_p(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n1(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n2(void);
extern void utc_nntrainer_dataset_startup(void);
extern void utc_nntrainer_dataset_cleanup(void);
extern int utc_nntrainer_model_run_p1(void);
extern int utc_nntrainer_model_run_p2(void);
extern int utc_nntrainer_model_run_n(void);
+extern int utc_nntrainer_model_get_weight_p(void);
+extern int utc_nntrainer_model_get_weight_n(void);
+
/// since tizen 6.5
extern int utc_nntrainer_layer_create_p2(void);
extern int utc_nntrainer_layer_set_property_bn_p(void);
extern int utc_nntrainer_dataset_set_property_for_mode_p(void);
extern int utc_nntrainer_dataset_set_property_for_mode_n(void);
+/// since tizen 7.5
+extern void utc_nntrainer_lr_scheduler_startup(void);
+extern void utc_nntrainer_lr_scheduler_cleanup(void);
+
+extern int utc_nntrainer_lr_scheduler_create_p(void);
+extern int utc_nntrainer_lr_scheduler_create_n(void);
+extern int utc_nntrainer_lr_scheduler_destroy_p(void);
+extern int utc_nntrainer_lr_scheduler_destroy_n(void);
+extern int utc_nntrainer_lr_scheduler_set_property_p(void);
+extern int utc_nntrainer_lr_scheduler_set_property_n(void);
+
testcase tc_array[] = {
// layer tcs
{"utc_nntrainer_layer_create_p", utc_nntrainer_layer_create_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_optimizer_destroy_n", utc_nntrainer_optimizer_destroy_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_p", utc_nntrainer_optimizer_set_property_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_n", utc_nntrainer_optimizer_set_property_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_p", utc_nntrainer_optimizer_set_lr_scheduler_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n1", utc_nntrainer_optimizer_set_lr_scheduler_n1, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n2", utc_nntrainer_optimizer_set_lr_scheduler_n2, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
// dataset tcs
{"utc_nntrainer_dataset_create_file_p", utc_nntrainer_dataset_create_file_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_create_file_n", utc_nntrainer_dataset_create_file_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_model_run_p1", utc_nntrainer_model_run_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_p2", utc_nntrainer_model_run_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_n", utc_nntrainer_model_run_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_p", utc_nntrainer_model_get_weight_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_n", utc_nntrainer_model_get_weight_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
/// since tizen 6.5
{"utc_nntrainer_layer_create_p2", utc_nntrainer_layer_create_p2, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_p", utc_nntrainer_dataset_set_property_for_mode_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_n", utc_nntrainer_dataset_set_property_for_mode_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
+ // lr_scheduler tcs
+ {"utc_nntrainer_lr_scheduler_create_p", utc_nntrainer_lr_scheduler_create_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_create_n", utc_nntrainer_lr_scheduler_create_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_p", utc_nntrainer_lr_scheduler_destroy_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_n", utc_nntrainer_lr_scheduler_destroy_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_p", utc_nntrainer_lr_scheduler_set_property_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_n", utc_nntrainer_lr_scheduler_set_property_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+
{NULL, NULL},
};
#endif // __TCT_NNTRAINER_MOBILE_H__
extern int utc_nntrainer_optimizer_destroy_n(void);
extern int utc_nntrainer_optimizer_set_property_p(void);
extern int utc_nntrainer_optimizer_set_property_n(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_p(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n1(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n2(void);
extern void utc_nntrainer_dataset_startup(void);
extern void utc_nntrainer_dataset_cleanup(void);
extern int utc_nntrainer_model_run_p1(void);
extern int utc_nntrainer_model_run_p2(void);
extern int utc_nntrainer_model_run_n(void);
+extern int utc_nntrainer_model_get_weight_p(void);
+extern int utc_nntrainer_model_get_weight_n(void);
/// since tizen 6.5
extern int utc_nntrainer_layer_create_p2(void);
extern int utc_nntrainer_dataset_set_property_for_mode_p(void);
extern int utc_nntrainer_dataset_set_property_for_mode_n(void);
+/// since tizen 7.5
+extern void utc_nntrainer_lr_scheduler_startup(void);
+extern void utc_nntrainer_lr_scheduler_cleanup(void);
+
+extern int utc_nntrainer_lr_scheduler_create_p(void);
+extern int utc_nntrainer_lr_scheduler_create_n(void);
+extern int utc_nntrainer_lr_scheduler_destroy_p(void);
+extern int utc_nntrainer_lr_scheduler_destroy_n(void);
+extern int utc_nntrainer_lr_scheduler_set_property_p(void);
+extern int utc_nntrainer_lr_scheduler_set_property_n(void);
+
testcase tc_array[] = {
// layer tcs
{"utc_nntrainer_layer_create_p", utc_nntrainer_layer_create_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_optimizer_destroy_n", utc_nntrainer_optimizer_destroy_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_p", utc_nntrainer_optimizer_set_property_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_n", utc_nntrainer_optimizer_set_property_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_p", utc_nntrainer_optimizer_set_lr_scheduler_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n1", utc_nntrainer_optimizer_set_lr_scheduler_n1, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n2", utc_nntrainer_optimizer_set_lr_scheduler_n2, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
// dataset tcs
{"utc_nntrainer_dataset_create_file_p", utc_nntrainer_dataset_create_file_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_create_file_n", utc_nntrainer_dataset_create_file_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_model_run_p1", utc_nntrainer_model_run_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_p2", utc_nntrainer_model_run_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_n", utc_nntrainer_model_run_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_p", utc_nntrainer_model_get_weight_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_n", utc_nntrainer_model_get_weight_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
/// since tizen 6.5
{"utc_nntrainer_layer_create_p2", utc_nntrainer_layer_create_p2, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_p", utc_nntrainer_dataset_set_property_for_mode_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_n", utc_nntrainer_dataset_set_property_for_mode_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
+ // lr_scheduler tcs
+ {"utc_nntrainer_lr_scheduler_create_p", utc_nntrainer_lr_scheduler_create_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_create_n", utc_nntrainer_lr_scheduler_create_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_p", utc_nntrainer_lr_scheduler_destroy_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_n", utc_nntrainer_lr_scheduler_destroy_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_p", utc_nntrainer_lr_scheduler_set_property_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_n", utc_nntrainer_lr_scheduler_set_property_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+
{NULL, NULL},
};
#endif // __TCT_NNTRAINER_IOT_H__
extern int utc_nntrainer_optimizer_destroy_n(void);
extern int utc_nntrainer_optimizer_set_property_p(void);
extern int utc_nntrainer_optimizer_set_property_n(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_p(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n1(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n2(void);
extern void utc_nntrainer_dataset_startup(void);
extern void utc_nntrainer_dataset_cleanup(void);
extern int utc_nntrainer_model_run_p1(void);
extern int utc_nntrainer_model_run_p2(void);
extern int utc_nntrainer_model_run_n(void);
+extern int utc_nntrainer_model_get_weight_p(void);
+extern int utc_nntrainer_model_get_weight_n(void);
/// since tizen 6.5
extern int utc_nntrainer_layer_create_p2(void);
extern int utc_nntrainer_dataset_set_property_for_mode_p(void);
extern int utc_nntrainer_dataset_set_property_for_mode_n(void);
+/// since tizen 7.5
+extern void utc_nntrainer_lr_scheduler_startup(void);
+extern void utc_nntrainer_lr_scheduler_cleanup(void);
+
+extern int utc_nntrainer_lr_scheduler_create_p(void);
+extern int utc_nntrainer_lr_scheduler_create_n(void);
+extern int utc_nntrainer_lr_scheduler_destroy_p(void);
+extern int utc_nntrainer_lr_scheduler_destroy_n(void);
+extern int utc_nntrainer_lr_scheduler_set_property_p(void);
+extern int utc_nntrainer_lr_scheduler_set_property_n(void);
+
testcase tc_array[] = {
// layer tcs
{"utc_nntrainer_layer_create_p", utc_nntrainer_layer_create_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_optimizer_destroy_n", utc_nntrainer_optimizer_destroy_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_p", utc_nntrainer_optimizer_set_property_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_n", utc_nntrainer_optimizer_set_property_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_p", utc_nntrainer_optimizer_set_lr_scheduler_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n1", utc_nntrainer_optimizer_set_lr_scheduler_n1, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n2", utc_nntrainer_optimizer_set_lr_scheduler_n2, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
// dataset tcs
{"utc_nntrainer_dataset_create_file_p", utc_nntrainer_dataset_create_file_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_create_file_n", utc_nntrainer_dataset_create_file_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_model_run_p1", utc_nntrainer_model_run_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_p2", utc_nntrainer_model_run_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_n", utc_nntrainer_model_run_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_p", utc_nntrainer_model_get_weight_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_n", utc_nntrainer_model_get_weight_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
/// since tizen 6.5
{"utc_nntrainer_layer_create_p2", utc_nntrainer_layer_create_p2, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_p", utc_nntrainer_dataset_set_property_for_mode_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_n", utc_nntrainer_dataset_set_property_for_mode_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
+ // lr_scheduler tcs
+ {"utc_nntrainer_lr_scheduler_create_p", utc_nntrainer_lr_scheduler_create_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_create_n", utc_nntrainer_lr_scheduler_create_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_p", utc_nntrainer_lr_scheduler_destroy_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_n", utc_nntrainer_lr_scheduler_destroy_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_p", utc_nntrainer_lr_scheduler_set_property_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_n", utc_nntrainer_lr_scheduler_set_property_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+
{NULL, NULL},
};
extern int utc_nntrainer_optimizer_destroy_n(void);
extern int utc_nntrainer_optimizer_set_property_p(void);
extern int utc_nntrainer_optimizer_set_property_n(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_p(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n1(void);
+extern int utc_nntrainer_optimizer_set_lr_scheduler_n2(void);
extern void utc_nntrainer_dataset_startup(void);
extern void utc_nntrainer_dataset_cleanup(void);
extern int utc_nntrainer_model_run_p1(void);
extern int utc_nntrainer_model_run_p2(void);
extern int utc_nntrainer_model_run_n(void);
+extern int utc_nntrainer_model_get_weight_p(void);
+extern int utc_nntrainer_model_get_weight_n(void);
/// since tizen 6.5
extern int utc_nntrainer_layer_create_p2(void);
extern int utc_nntrainer_dataset_set_property_for_mode_p(void);
extern int utc_nntrainer_dataset_set_property_for_mode_n(void);
+/// since tizen 7.5
+extern void utc_nntrainer_lr_scheduler_startup(void);
+extern void utc_nntrainer_lr_scheduler_cleanup(void);
+
+extern int utc_nntrainer_lr_scheduler_create_p(void);
+extern int utc_nntrainer_lr_scheduler_create_n(void);
+extern int utc_nntrainer_lr_scheduler_destroy_p(void);
+extern int utc_nntrainer_lr_scheduler_destroy_n(void);
+extern int utc_nntrainer_lr_scheduler_set_property_p(void);
+extern int utc_nntrainer_lr_scheduler_set_property_n(void);
+
testcase tc_array[] = {
// layer tcs
{"utc_nntrainer_layer_create_p", utc_nntrainer_layer_create_p, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_optimizer_destroy_n", utc_nntrainer_optimizer_destroy_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_p", utc_nntrainer_optimizer_set_property_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
{"utc_nntrainer_optimizer_set_property_n", utc_nntrainer_optimizer_set_property_n, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_p", utc_nntrainer_optimizer_set_lr_scheduler_p, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n1", utc_nntrainer_optimizer_set_lr_scheduler_n1, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
+ {"utc_nntrainer_optimizer_set_lr_scheduler_n2", utc_nntrainer_optimizer_set_lr_scheduler_n2, utc_nntrainer_optimizer_startup, utc_nntrainer_optimizer_cleanup},
// dataset tcs
{"utc_nntrainer_dataset_create_file_p", utc_nntrainer_dataset_create_file_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_create_file_n", utc_nntrainer_dataset_create_file_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_model_run_p1", utc_nntrainer_model_run_p1, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_p2", utc_nntrainer_model_run_p2, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
{"utc_nntrainer_model_run_n", utc_nntrainer_model_run_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_p", utc_nntrainer_model_get_weight_p, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
+ {"utc_nntrainer_model_get_weight_n", utc_nntrainer_model_get_weight_n, utc_nntrainer_model_startup, utc_nntrainer_model_cleanup},
/// since tizen 6.5
{"utc_nntrainer_layer_create_p2", utc_nntrainer_layer_create_p2, utc_nntrainer_layer_startup, utc_nntrainer_layer_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_p", utc_nntrainer_dataset_set_property_for_mode_p, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
{"utc_nntrainer_dataset_set_property_for_mode_n", utc_nntrainer_dataset_set_property_for_mode_n, utc_nntrainer_dataset_startup, utc_nntrainer_dataset_cleanup},
+ // lr_scheduler tcs
+ {"utc_nntrainer_lr_scheduler_create_p", utc_nntrainer_lr_scheduler_create_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_create_n", utc_nntrainer_lr_scheduler_create_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_p", utc_nntrainer_lr_scheduler_destroy_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_destroy_n", utc_nntrainer_lr_scheduler_destroy_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_p", utc_nntrainer_lr_scheduler_set_property_p, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+ {"utc_nntrainer_lr_scheduler_set_property_n", utc_nntrainer_lr_scheduler_set_property_n, utc_nntrainer_lr_scheduler_startup, utc_nntrainer_lr_scheduler_cleanup},
+
{NULL, NULL},
};
--- /dev/null
+//
+// Copyright (c) 2023 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include "utc-nntrainer-common.h"
+
+static int status;
+static ml_train_lr_scheduler_h lr_scheduler;
+
+/**
+ * @function utc_nntrainer_lr_scheduler_startup
+ * @since_tizen 7.5
+ * @description Called before each test case
+ */
+void utc_nntrainer_lr_scheduler_startup(void)
+{
+ int ret = SYSTEM_INFO_ERROR_NONE;
+
+ ret = check_feature();
+ if (ret != SYSTEM_INFO_ERROR_NONE)
+ {
+ LOG_I("startup failed because checking feature failed."
+ "Please note that tct can be run unexpectedly");
+ return;
+ }
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_cleanup
+ * @since_tizen 7.5
+ * @description Called after each test case
+ */
+void utc_nntrainer_lr_scheduler_cleanup(void)
+{
+ return;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_create_p
+ * @since_tizen 7.5
+ * @description create lr_scheduler test
+ */
+int utc_nntrainer_lr_scheduler_create_p(void)
+{
+ status = ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_NONE);
+ }
+
+ ml_train_lr_scheduler_destroy(lr_scheduler);
+
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_create_n
+ * @since_tizen 7.5
+ * @description Test for creating unknown lr_scheduler
+ */
+int utc_nntrainer_lr_scheduler_create_n(void)
+{
+ status = ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_UNKNOWN);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_destory_p
+ * @since_tizen 7.5
+ * @description Test for destroying lr_scheduler
+ */
+int utc_nntrainer_lr_scheduler_destroy_p(void)
+{
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ status = ml_train_lr_scheduler_destroy(lr_scheduler);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_NONE);
+ }
+
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_destroy_n
+ * @since_tizen 7.5
+ * @description Test for destroying lr_scheduler that is passed to optimizer
+ */
+int utc_nntrainer_lr_scheduler_destroy_n(void)
+{
+ ml_train_optimizer_h optimizer;
+ ml_train_optimizer_create(&optimizer, ML_TRAIN_OPTIMIZER_TYPE_SGD);
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+
+ ml_train_optimizer_set_lr_scheduler(optimizer, lr_scheduler);
+
+ status = ml_train_lr_scheduler_destroy(lr_scheduler);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+
+ ml_train_optimizer_destroy(optimizer);
+
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_set_property_p
+ * @since_tizen 7.5
+ * @description Test for setting property
+ */
+int utc_nntrainer_lr_scheduler_set_property_p(void)
+{
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ status = ml_train_lr_scheduler_set_property(lr_scheduler, "learning_rate=0.0001", NULL);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_NONE);
+ }
+
+ ml_train_lr_scheduler_destroy(lr_scheduler);
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_lr_scheduler_set_property_n
+ * @since_tizen 7.5
+ * @description Test for setting invalid property
+ */
+int utc_nntrainer_lr_scheduler_set_property_n(void)
+{
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ status = ml_train_lr_scheduler_set_property(lr_scheduler, "invalid_property_key=invalid_property_value", NULL);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+ ml_train_lr_scheduler_destroy(lr_scheduler);
+
+ return 0;
+}
return 0;
}
+
+/**
+ * @function utc_nntrainer_model_get_weight_p
+ * @since_tizen 7.5
+ * @description get weight from model
+ */
+int utc_nntrainer_model_get_weight_p(void)
+{
+ ml_train_model_h model;
+ ml_tensors_info_h weight_info;
+ ml_tensors_data_h weights;
+ ml_train_model_construct_with_conf(conf_path, &model);
+
+ ml_train_model_compile(model, NULL);
+
+ status = ml_train_model_get_weight(model, "outputlayer", &weights, &weight_info);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_NONE);
+ }
+
+ ml_train_model_destroy(model);
+ ml_tensors_info_destroy(weight_info);
+ ml_tensors_data_destroy(weights);
+
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_model_get_weight_n
+ * @since_tizen 7.5
+ * @description get weight from model
+ */
+int utc_nntrainer_model_get_weight_n(void)
+{
+ ml_train_model_h model;
+ ml_tensors_info_h weight_info;
+ ml_tensors_data_h weights;
+ ml_train_model_construct_with_conf(conf_path, &model);
+
+ ml_train_model_compile(model, NULL);
+
+ status = ml_train_model_get_weight(model, "unknownlayer", &weights, &weight_info);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+
+ ml_train_model_destroy(model);
+
+ return 0;
+}
static int status;
static ml_train_optimizer_h opt;
+static ml_train_lr_scheduler_h lr_scheduler;
/**
* @function utc_nntrainer_optimizer_startup
return 0;
}
+
+/**
+ * @function utc_nntrainer_optimizer_set_lr_scheduler_p
+ * @since_tizen 7.5
+ * @description Test for set lr_scheduler
+ */
+int utc_nntrainer_optimizer_set_lr_scheduler_p(void)
+{
+ ml_train_optimizer_create(&opt, ML_TRAIN_OPTIMIZER_TYPE_SGD);
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ status = ml_train_optimizer_set_lr_scheduler(opt, lr_scheduler);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_NONE);
+ }
+
+ ml_train_optimizer_destroy(opt);
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_optimizer_set_lr_scheduler_n1
+ * @since_tizen 7.5
+ * @description Test for set lr_scheduler owned by other optimizer
+ */
+int utc_nntrainer_optimizer_set_lr_scheduler_n1(void)
+{
+ ml_train_optimizer_h other_opt;
+ ml_train_optimizer_create(&other_opt, ML_TRAIN_OPTIMIZER_TYPE_SGD);
+ ml_train_lr_scheduler_create(&lr_scheduler, ML_TRAIN_LR_SCHEDULER_TYPE_CONSTANT);
+ ml_train_optimizer_set_lr_scheduler(other_opt, lr_scheduler);
+
+ ml_train_optimizer_create(&opt, ML_TRAIN_OPTIMIZER_TYPE_SGD);
+ status = ml_train_optimizer_set_lr_scheduler(opt, lr_scheduler);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+
+ ml_train_optimizer_destroy(opt);
+ ml_train_optimizer_destroy(other_opt);
+ return 0;
+}
+
+/**
+ * @function utc_nntrainer_optimizer_set_lr_scheduler_n2
+ * @since_tizen 7.5
+ * @description Test for set lr_scheduler passing null
+ */
+int utc_nntrainer_optimizer_set_lr_scheduler_n2(void)
+{
+ ml_train_optimizer_create(&opt, ML_TRAIN_OPTIMIZER_TYPE_SGD);
+ status = ml_train_optimizer_set_lr_scheduler(opt, NULL);
+ if (train_supported == false)
+ {
+ assert_eq(status, ML_ERROR_NOT_SUPPORTED);
+ }
+ else
+ {
+ assert_eq(status, ML_ERROR_INVALID_PARAMETER);
+ }
+
+ ml_train_optimizer_destroy(opt);
+ return 0;
+}