[common-api] Add common api header
authorParichay Kapoor <pk.kapoor@samsung.com>
Wed, 15 Jul 2020 08:00:50 +0000 (17:00 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Thu, 16 Jul 2020 04:09:36 +0000 (13:09 +0900)
Add common api header for nntrainer.
This common header includes declarations common to all the APIs
and is used in nntrainer as well.

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
Applications/Classification/jni/Android.mk
Applications/mnist/jni/Android.mk
api/capi/include/nntrainer.h
api/capi/meson.build
api/nntrainer-api-common.h [new file with mode: 0644]
jni/Android.mk
nntrainer/include/databuffer_func.h
nntrainer/meson.build
packaging/nntrainer.spec

index e7b9398..1600f57 100644 (file)
@@ -10,7 +10,7 @@ endif
 ifndef NNTRAINER_ROOT
 NNTRAINER_ROOT := $(LOCAL_PATH)/../../../libs/arm64-v8a
 NNTRAINER_INCLUDES := $(LOCAL_PATH)/../../../nntrainer/include \
-       $(LOCAL_PATH)/../../../api/capi/include \
+       $(LOCAL_PATH)/../../../api \
        $(LOCAL_PATH)/../../../api/capi/include/platform
 endif
 
index 403f4d6..a0d0411 100644 (file)
@@ -10,7 +10,7 @@ endif
 ifndef NNTRAINER_ROOT
 NNTRAINER_ROOT := $(LOCAL_PATH)/../../../libs/arm64-v8a
 NNTRAINER_INCLUDES := $(LOCAL_PATH)/../../../nntrainer/include \
-       $(LOCAL_PATH)/../../../api/capi/include \
+       $(LOCAL_PATH)/../../../api \
        $(LOCAL_PATH)/../../../api/capi/include/platform
 endif
 
index fefaaa3..85c7746 100644 (file)
@@ -28,6 +28,7 @@
 #include <stddef.h>
 
 #include <ml-api-common.h>
+#include <nntrainer-api-common.h>
 
 #ifdef __cplusplus
 extern "C" {
index 27a44e8..b96d0b2 100644 (file)
@@ -1,5 +1,6 @@
 capi_inc = []
 capi_inc += include_directories('include')
+capi_inc += include_directories('..')
 
 # pc file is not present for 'ml-api-common' yet
 if cxx.has_header('nnstreamer/ml-api-common.h', required: false)
@@ -14,6 +15,7 @@ capi_src += join_paths(meson.current_source_dir(), 'src','nntrainer_util.cpp')
 
 capi_headers = []
 capi_headers += join_paths(meson.current_source_dir(), 'include', 'nntrainer.h')
+capi_headers += join_paths(meson.current_source_dir(), '..', 'nntrainer-api-common.h')
 
 capi_deps = [
   nntrainer_dep
diff --git a/api/nntrainer-api-common.h b/api/nntrainer-api-common.h
new file mode 100644 (file)
index 0000000..f63db8c
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: Apache-2.0-only
+/**
+ * Copyright (C) 2020 Parichay Kapoor <pk.kapoor@samsung.com>
+ *
+ * @file nntrainer-api-common.h
+ * @date 02 April 2020
+ * @brief NNTrainer Common-API Header.
+ * @see        https://github.com/nnstreamer/nntrainer
+ * @author Parichay Kapoor <pk.kapoor@samsung.com>
+ * @bug No known bugs except for NYI items
+ */
+
+/**
+ * @brief Dataset generator callback function for train/valid/test data.
+ * @details The Containers passed will already be allocated with sufficient
+ * space to contain the data by the caller. This function should return a batch
+ * of input and label of data in the passed containers. The callback should fill
+ * the data row-wise in the containers obliging to the input shape set for the
+ * model. The order of the inputs in case of multiple input layers will be
+ * determined based on the sequence of addition of the input layers to the
+ * model.
+ * @note This function can be called multiple times in parallel.
+ * @param[out] input Container to hold all the input data.
+ * @param[out] label Container to hold corresponding label data.
+ * @param[out] last Container to notify if data is finished. Set true if no more
+ * data to provide, else set false.
+ * @return @c 0 on success. Otherwise a negative error value.
+ * @retval #ML_ERROR_NONE Successful.
+ * @retval #ML_ERROR_INVALID_PARAMETER Invalid Parameter.
+ */
+typedef int (*ml_train_datagen_cb)(float **input, float **label, bool *last);
index 587d5a5..5838ce0 100644 (file)
@@ -41,7 +41,7 @@ NNTRAINER_SRCS := $(NNTRAINER_ROOT)/nntrainer/src/neuralnet.cpp \
                   $(NNTRAINER_ROOT)/nntrainer/src/flatten_layer.cpp
 
 NNTRAINER_INCLUDES := $(NNTRAINER_ROOT)/nntrainer/include \
-                      $(NNTRAINER_ROOT)/api/capi/include \
+                      $(NNTRAINER_ROOT)/api \
                       $(NNTRAINER_ROOT)/api/capi/include/platform
 
 INIPARSER_SRCS := $(INIPARSER_ROOT)/src/iniparser.c \
index 8f99d6a..74d6807 100644 (file)
@@ -31,7 +31,7 @@
 #include <functional>
 #include <iostream>
 #include <memory>
-#include <nntrainer.h>
+#include <nntrainer-api-common.h>
 #include <thread>
 #include <vector>
 
index 3245b45..c0febb8 100644 (file)
@@ -1,6 +1,6 @@
 nntrainer_inc = [
   include_directories('./include'),
-  include_directories('../api/capi/include')
+  include_directories('../api')
 ]
 
 # pc file is not present for 'ml-api-common' yet
@@ -68,7 +68,8 @@ nntrainer_headers = [
   'include/pooling2d_layer.h',
   'include/tensor.h',
   'include/tensor_dim.h',
-  'include/util_func.h'
+  'include/util_func.h',
+  '../api/nntrainer-api-common.h'
 ]
 
 # Build libraries
index 565afe5..4cbfaac 100644 (file)
@@ -245,6 +245,7 @@ cp -r result %{buildroot}%{_datadir}/nntrainer/unittest/
 %{_includedir}/nntrainer/optimizer.h
 %{_includedir}/nntrainer/util_func.h
 %{_includedir}/nntrainer/parse_util.h
+%{_includedir}/nntrainer/nntrainer-api-common.h
 %{_libdir}/pkgconfig/nntrainer.pc
 
 %files devel-static
@@ -259,6 +260,7 @@ cp -r result %{buildroot}%{_datadir}/nntrainer/unittest/
 
 %files -n capi-nntrainer-devel
 %{_includedir}/nntrainer/nntrainer.h
+%{_includedir}/nntrainer/nntrainer-api-common.h
 %{_libdir}/pkgconfig/capi-nntrainer.pc
 
 %files -n capi-nntrainer-devel-static