mirror of
https://github.com/davidalbertonogueira/MLP.git
synced 2025-12-16 20:07:07 +03:00
2
.gitignore
vendored
2
.gitignore
vendored
@@ -212,3 +212,5 @@ FakesAssemblies/
|
||||
GeneratedArtifacts/
|
||||
_Pvt_Extensions/
|
||||
ModelManifest.xml
|
||||
|
||||
/build
|
||||
|
||||
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
@@ -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)
|
||||
11
src/MLP.cpp
11
src/MLP.cpp
@@ -10,8 +10,10 @@
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
#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<TrainingSample> &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<TrainingSample> &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<TrainingSample> &training_sample_set_with_bias
|
||||
LOG(INFO) << "******* TRAINING ENDED *******";
|
||||
LOG(INFO) << "******* " << i << " iters *******";
|
||||
LOG(INFO) << "******************************";
|
||||
#endif
|
||||
//{
|
||||
// int layer_i = -1;
|
||||
// int node_i = -1;
|
||||
|
||||
Reference in New Issue
Block a user