Start implementing inception modules tests

This commit is contained in:
2024-06-02 00:31:37 +02:00
parent 09e64f8037
commit f5113cbac9
3 changed files with 85 additions and 5 deletions

View File

@@ -4,8 +4,7 @@ project(Inceptionv3
LANGUAGES CXX CUDA LANGUAGES CXX CUDA
) )
add_executable(inception_v3 add_library(inception_v3_lib
inception_v3.cpp
inception_modules.cpp inception_modules.cpp
) )
@@ -22,8 +21,20 @@ set (CUDANet_INCLUDE_DIRS
) )
target_include_directories( target_include_directories(
inception_v3 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${OpenCV_INCLUDE_DIRS} ${CUDANet_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS}) inception_v3_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CUDANet_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS})
target_link_libraries(inception_v3 PRIVATE ${CUDANet_LIBRARY} ${OpenCV_LIBS} CUDA::cudart) target_link_libraries(inception_v3_lib PRIVATE ${CUDANet_LIBRARY} ${OpenCV_LIBS} CUDA::cudart)
set_property(TARGET inception_v3_lib PROPERTY CXX_STANDARD 20)
add_executable(inception_v3
inception_v3.cpp
)
target_include_directories(inception_v3 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${OpenCV_INCLUDE_DIRS} ${CUDANet_INCLUDE_DIRS} ${CUDAToolkit_INCLUDE_DIRS})
target_link_libraries(inception_v3 PRIVATE inception_v3_lib ${CUDANet_LIBRARY})
set_property(TARGET inception_v3 PROPERTY CXX_STANDARD 20) set_property(TARGET inception_v3 PROPERTY CXX_STANDARD 20)
add_subdirectory(tests)

View File

@@ -0,0 +1,26 @@
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
file(GLOB_RECURSE TEST_SOURCES
*.cpp
)
add_executable(test_inception_v3
EXCLUDE_FROM_ALL
${TEST_SOURCES}
)
target_include_directories(test_inception_v3 PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/..
${CUDANet_INCLUDE_DIRS}
${CUDAToolkit_INCLUDE_DIRS}
)
target_link_libraries(test_inception_v3
${GTEST_BOTH_LIBRARIES}
${CUDANet_LIBRARY}
CUDA::cudart
inception_v3_lib
)
add_test(NAME TestMain COMMAND test_inception_v3)

View File

@@ -0,0 +1,43 @@
#include <gtest/gtest.h>
#include <inception_v3.hpp>
class BasicConv2dTest : public ::testing::Test {
protected:
BasicConv2d *basic_conv2d;
shape2d inputShape;
int inputChannels;
int outputChannels;
shape2d kernelSize;
shape2d stride;
shape2d padding;
std::string prefix = "test";
float *d_input;
float *d_output;
std::vector<float> input;
std::vector<float> output;
std::vector<float> weights;
std::vector<float> biases;
virtual void SetUp() override {
basic_conv2d = nullptr;
}
virtual void TearDown() override {
// Clean up
delete basic_conv2d;
}
};
TEST_F(BasicConv2dTest, BasicConv2dTest1) {
inputShape = {28, 28};
inputChannels = 1;
outputChannels = 32;
kernelSize = {3, 3};
stride = {1, 1};
padding = {1, 1};
};