#define __DATABUFFER_H__
#ifdef __cplusplus
-#include <atomic>
-#include <fstream>
-#include <functional>
-#include <iostream>
#include <memory>
#include <random>
#include <thread>
#include <tensor_dim.h>
-#define SET_VALIDATION(val) \
- do { \
- for (DataType i = DATA_TRAIN; i < DATA_UNKNOWN; i = DataType(i + 1)) \
- validation[i] = val; \
- } while (0)
-
-#define NN_EXCEPTION_NOTI(val) \
- do { \
- switch (type) { \
- case BUF_TRAIN: { \
- std::lock_guard<std::mutex> lgtrain(readyTrainData); \
- trainReadyFlag = val; \
- cv_train.notify_all(); \
- } break; \
- case BUF_VAL: { \
- std::lock_guard<std::mutex> lgval(readyValData); \
- valReadyFlag = val; \
- cv_val.notify_all(); \
- } break; \
- case BUF_TEST: { \
- std::lock_guard<std::mutex> lgtest(readyTestData); \
- testReadyFlag = val; \
- cv_test.notify_all(); \
- } break; \
- default: \
- break; \
- } \
- } while (0)
-
-/**
- * @brief Number of Data Set
- */
-constexpr const unsigned int NBUFTYPE = 4;
-
-typedef enum {
- DATA_NOT_READY = 0,
- DATA_READY = 1,
- DATA_END = 2,
- DATA_ERROR = 3,
-} DataStatus;
-
namespace nntrainer {
/**
* @retval #ML_ERROR_NONE Successful.
* @retval #ML_ERROR_INVALID_PARAMETER invalid parameter.
*/
- /* virtual int setFeatureSize(unsigned int n); */
virtual int setFeatureSize(TensorDim indim);
/**
int setProperty(std::vector<std::string> values);
/**
- * @brief set property
+ * @brief set property to allow setting user_data for cb
* @param[in] values values of property
* @retval #ML_ERROR_NONE Successful.
* @retval #ML_ERROR_INVALID_PARAMETER invalid parameter.
*/
int setProperty(std::vector<void *> values);
- /**
- * @brief status of thread
- */
- DataStatus trainReadyFlag;
- DataStatus valReadyFlag;
- DataStatus testReadyFlag;
-
enum class PropertyType {
train_data = 0,
val_data = 1,
};
protected:
+ /**
+ * @brief Number of Data Set
+ */
+ static constexpr const unsigned int NBUFTYPE = 4;
+
+ /**
+ * @brief state of the data buffer while getting the data
+ */
+ typedef enum {
+ DATA_NOT_READY = 0,
+ DATA_READY = 1,
+ DATA_END = 2,
+ DATA_ERROR = 3,
+ } DataStatus;
+
+ /**
+ * @brief status of thread
+ */
+ DataStatus trainReadyFlag;
+ DataStatus valReadyFlag;
+ DataStatus testReadyFlag;
+
/**
* @brief Data Queues for each data set
*/
#define __DATABUFFER_FILE_H__
#ifdef __cplusplus
-#include <atomic>
#include <fstream>
-#include <functional>
-#include <iostream>
#include <memory>
#include <thread>
#include <vector>
#define __DATABUFFER_FUNC_H__
#ifdef __cplusplus
-#include <atomic>
-#include <fstream>
#include <functional>
-#include <iostream>
#include <memory>
#include <thread>
#include <vector>
--- /dev/null
+// SPDX-License-Identifier: Apache-2.0
+/**
+ * Copyright (C) 2020 Parichay Kapoor <pk.kapoor@samsung.com>
+ *
+ * @file databuffer_util.h
+ * @date 12 October 2020
+ * @see https://github.com/nnstreamer/nntrainer
+ * @author Jijoong Moon <jijoong.moon@samsung.com>
+ * @author Parichay Kapoor <pk.kapoor@samsung.com>
+ * @bug No known bugs except for NYI items
+ * @brief This is Databuffer utility file.
+ *
+ */
+
+#define SET_VALIDATION(val) \
+ do { \
+ for (DataType i = DATA_TRAIN; i < DATA_UNKNOWN; i = DataType(i + 1)) \
+ validation[i] = val; \
+ } while (0)
+
+#define NN_EXCEPTION_NOTI(val) \
+ do { \
+ switch (type) { \
+ case BUF_TRAIN: { \
+ std::lock_guard<std::mutex> lgtrain(readyTrainData); \
+ trainReadyFlag = val; \
+ cv_train.notify_all(); \
+ } break; \
+ case BUF_VAL: { \
+ std::lock_guard<std::mutex> lgval(readyValData); \
+ valReadyFlag = val; \
+ cv_val.notify_all(); \
+ } break; \
+ case BUF_TEST: { \
+ std::lock_guard<std::mutex> lgtest(readyTestData); \
+ testReadyFlag = val; \
+ cv_test.notify_all(); \
+ } break; \
+ default: \
+ break; \
+ } \
+ } while (0)
'include/databuffer.h',
'include/databuffer_file.h',
'include/databuffer_func.h',
+ 'include/databuffer_util.h',
'include/fc_layer.h',
'include/flatten_layer.h',
'include/input_layer.h',
*
*/
-#include <assert.h>
+#include <cassert>
#include <climits>
#include <condition_variable>
#include <cstring>
#include <databuffer.h>
+#include <databuffer_util.h>
#include <functional>
#include <iomanip>
#include <mutex>
#include <condition_variable>
#include <cstring>
#include <databuffer_file.h>
+#include <databuffer_util.h>
#include <functional>
#include <iomanip>
#include <mutex>
extern std::condition_variable cv_val;
extern std::condition_variable cv_test;
-extern DataStatus trainReadyFlag;
-extern DataStatus valReadyFlag;
-extern DataStatus testReadyFlag;
-
static long getFileSize(std::string file_name) {
std::ifstream file_stream(file_name.c_str(), std::ios::in | std::ios::binary);
if (file_stream.good()) {
#include <condition_variable>
#include <cstring>
#include <databuffer_func.h>
+#include <databuffer_util.h>
#include <functional>
#include <iomanip>
#include <mutex>
extern std::condition_variable cv_val;
extern std::condition_variable cv_test;
-extern DataStatus trainReadyFlag;
-extern DataStatus valReadyFlag;
-extern DataStatus testReadyFlag;
-
int DataBufferFromCallback::init() {
int status = ML_ERROR_NONE;
%{_includedir}/nntrainer/databuffer.h
%{_includedir}/nntrainer/databuffer_file.h
%{_includedir}/nntrainer/databuffer_func.h
+%{_includedir}/nntrainer/databuffer_util.h
%{_includedir}/nntrainer/layer.h
%{_includedir}/nntrainer/layer_factory.h
%{_includedir}/nntrainer/input_layer.h