From f136b8f60aef4434dfb014e7a560eecae5e1f4c6 Mon Sep 17 00:00:00 2001 From: xinyang Date: Sat, 18 May 2019 18:49:40 +0800 Subject: [PATCH] some updates --- CMakeLists.txt | 20 ++++++++++++++++---- tools/TrainCNN/backward.py | 2 +- tools/TrainCNN/forward.py | 6 ++++-- tools/TrainCNN/generate.py | 7 +++++++ 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 19c4469..d8ce09c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,12 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5) -PROJECT(RM-AutoAim) +PROJECT(AutoAim) SET(CMAKE_CXX_STANDARD 11) SET(CMAKE_BUILD_TYPE RELEASE) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${CMAKE_SYSTEM_NAME}") + # Todo ## 使用编译期固定选项,以略微提升性能。 #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFIX_OPTIONS") @@ -21,17 +22,28 @@ IF(CCACHE_FOUND) MESSAGE("< Use ccache for compiler >") ENDIF() +FIND_PACKAGE(Eigen3 REQUIRED) FIND_PACKAGE(OpenCV 3 REQUIRED) FIND_PACKAGE(Threads) -INCLUDE_DIRECTORIES("D:/Program\ Files/eigen3.3.7") +INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/energy/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/armor/include) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/others/include) FILE(GLOB_RECURSE sourcefiles "others/src/*.cpp" "energy/src/*cpp" "armor/src/*.cpp") -ADD_EXECUTABLE(${BIN_NAME} main.cpp ${sourcefiles} ) +ADD_EXECUTABLE(${BIN_NAME} main.cpp ${sourcefiles} others/include/additions/additions.h) TARGET_LINK_LIBRARIES(${BIN_NAME} ${CMAKE_THREAD_LIBS_INIT}) TARGET_LINK_LIBRARIES(${BIN_NAME} ${OpenCV_LIBS}) -TARGET_LINK_LIBRARIES(${BIN_NAME} "${PROJECT_SOURCE_DIR}/others/MVCAMSDK_X64.lib") +IF (CMAKE_SYSTEM_NAME MATCHES "Linux") + MESSAGE(STATUS "current platform: Linux ") + TARGET_LINK_LIBRARIES(${BIN_NAME} "${PROJECT_SOURCE_DIR}/others/libMVSDK.so") +ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows") + MESSAGE(STATUS "current platform: Windows") + TARGET_LINK_LIBRARIES(${BIN_NAME} "${PROJECT_SOURCE_DIR}/others/MVCAMSDK_X64.lib") +ELSE () + MESSAGE(STATUS "Unsupport platform: ${CMAKE_SYSTEM_NAME}") +ENDIF() + +ADD_CUSTOM_TARGET(bind-monitor COMMAND "${PROJECT_SOURCE_DIR}/tools/bind-monitor.sh" "${PROJECT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}") \ No newline at end of file diff --git a/tools/TrainCNN/backward.py b/tools/TrainCNN/backward.py index 797defc..87fbdc0 100755 --- a/tools/TrainCNN/backward.py +++ b/tools/TrainCNN/backward.py @@ -75,7 +75,7 @@ def train(dataset, show_bar=False): learning_rate = tf.train.exponential_decay( LEARNING_RATE_BASE, global_step, - len(dataset.train_samples) / BATCH, + len(dataset.train_samples) / BATCH / 5, LEARNING_RATE_DECAY, staircase=False) train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss, global_step=global_step) diff --git a/tools/TrainCNN/forward.py b/tools/TrainCNN/forward.py index 6200957..8d8073b 100644 --- a/tools/TrainCNN/forward.py +++ b/tools/TrainCNN/forward.py @@ -71,14 +71,16 @@ def forward(x, regularizer=None): pool_shape = pool2.get_shape().as_list() node = pool_shape[1] * pool_shape[2] * pool_shape[3] reshaped = tf.reshape(pool2, [-1, node]) +# reshaped = tf.nn.dropout(reshaped, 0.1) - fc1_w = tf.nn.dropout(get_weight([node, FC1_OUTPUT_NODES], regularizer), 0.1) + fc1_w = get_weight([node, FC1_OUTPUT_NODES], regularizer) fc1_b = get_bias([FC1_OUTPUT_NODES]) fc1 = tf.nn.relu(tf.matmul(reshaped, fc1_w) + fc1_b) +# fc1 = tf.nn.dropout(fc1, 0.2) vars.extend([fc1_w, fc1_b]) nodes.extend([fc1]) - fc2_w = tf.nn.dropout(get_weight([FC1_OUTPUT_NODES, FC2_OUTPUT_NODES], regularizer), 0.1) + fc2_w = get_weight([FC1_OUTPUT_NODES, FC2_OUTPUT_NODES], regularizer) fc2_b = get_bias([FC2_OUTPUT_NODES]) fc2 = tf.nn.softmax(tf.matmul(fc1, fc2_w) + fc2_b) vars.extend([fc2_w, fc2_b]) diff --git a/tools/TrainCNN/generate.py b/tools/TrainCNN/generate.py index 20c2a63..d2da420 100644 --- a/tools/TrainCNN/generate.py +++ b/tools/TrainCNN/generate.py @@ -41,6 +41,13 @@ class DataSet: def generate_data_sets(self, folder): sets = [] + mini = 1000000 + for i in range(OUTPUT_NODES): + dir = "%s/%d" % (folder, i) + files = os.listdir(dir) + if mini > len(files): + mini = len(files) + for i in range(OUTPUT_NODES): dir = "%s/%d" % (folder, i) files = os.listdir(dir)