diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..502e0bc --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.7) +project(MLP VERSION 1.0) + + +# add_compile_definitions(MLP_EASYLOGGING) ## For enable easy logging + +set(SHARED_LIB_NAME ${PROJECT_NAME}) +set(STATIC_LIB_NAME ${PROJECT_NAME}_static) +set(MLP_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/MLP.cpp") +set(MLP_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/MLP.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Layer.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Node.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Sample.h" + "${CMAKE_CURRENT_SOURCE_DIR}/src/Utils.h") + + +#### STATIC LIBRARY +add_library(${STATIC_LIB_NAME} STATIC ${MLP_HEADER_FILES} ${MLP_SOURCE_FILES}) +set_target_properties(${STATIC_LIB_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) +set_target_properties(${STATIC_LIB_NAME} PROPERTIES SOVERSION 1) +set_target_properties(${STATIC_LIB_NAME} PROPERTIES PUBLIC_HEADER ${MLP_HEADER_FILES}) +target_include_directories(${STATIC_LIB_NAME} PRIVATE ".") +target_include_directories(${STATIC_LIB_NAME} PRIVATE "src") +target_include_directories(${STATIC_LIB_NAME} PRIVATE "deps") + + +#### SHARED LIBRARY +add_library(${SHARED_LIB_NAME} SHARED ${MLP_HEADER_FILES} ${MLP_SOURCE_FILES}) +set_target_properties(${SHARED_LIB_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) +set_target_properties(${SHARED_LIB_NAME} PROPERTIES SOVERSION 1) +set_target_properties(${SHARED_LIB_NAME} PROPERTIES PUBLIC_HEADER ${MLP_HEADER_FILES}) +target_include_directories(${SHARED_LIB_NAME} PRIVATE ".") +target_include_directories(${SHARED_LIB_NAME} PRIVATE "src") +target_include_directories(${SHARED_LIB_NAME} PRIVATE "deps") + +if(UNIX) ## Install shared lib + include(GNUInstallDirs) + install(TARGETS ${SHARED_LIB_NAME} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +endif(UNIX) \ No newline at end of file diff --git a/src/MLP.cpp b/src/MLP.cpp index cd76f15..ff6c9b2 100644 --- a/src/MLP.cpp +++ b/src/MLP.cpp @@ -10,8 +10,10 @@ #include #include #include -#include "easylogging++.h" +#ifdef MLP_EASYLOGGING +#include "easylogging++.h" +#endif //desired call sintax : MLP({64*64,20,4}, {"sigmoid", "linear"}, @@ -206,7 +208,9 @@ void MLP::Train(const std::vector &training_sample_set_with_bias temp_training << predicted_output[i]; } temp_training << "]"; + #ifdef MLP_EASYLOGGING LOG(INFO) << temp_training.str(); + #endif } for (int j = 0; j < predicted_output.size(); j++) { @@ -221,13 +225,15 @@ void MLP::Train(const std::vector &training_sample_set_with_bias learning_rate); } + #ifdef MLP_EASYLOGGING if (output_log && ((i % (max_iterations / 10)) == 0)) LOG(INFO) << "Iteration " << i << " cost function f(error): " << current_iteration_cost_function; + #endif if (current_iteration_cost_function < min_error_cost) break; } - + #ifdef MLP_EASYLOGGING LOG(INFO) << "Iteration " << i << " cost function f(error): " << current_iteration_cost_function; @@ -235,6 +241,7 @@ void MLP::Train(const std::vector &training_sample_set_with_bias LOG(INFO) << "******* TRAINING ENDED *******"; LOG(INFO) << "******* " << i << " iters *******"; LOG(INFO) << "******************************"; + #endif //{ // int layer_i = -1; // int node_i = -1;