From cb65174cf41af75add8b81453d2ae165abb47a75 Mon Sep 17 00:00:00 2001 From: Michelle Date: Fri, 22 May 2026 10:11:43 +0200 Subject: [PATCH] Binomial_CrossEnthophy fixed rowwise/colswise mean/sum and implemented binomial_corssentrhopy. Next up is regression. --- build/CMakeFiles/CMakeConfigureLog.yaml | 180 +++++++------- build/bin/dense-neural-network | Bin 176960 -> 154360 bytes .../dense-neural-network.dir/main.cpp.o | Bin 392496 -> 325752 bytes .../dense-neural-network.dir/main.cpp.o.d | 4 + ...x_Loss_CategoricalCrossentropy-Example.txt | 233 ++++++++++++++++++ .../Loss_BinaryCrossentropy_example.txt | 205 +++++++++++++++ examples/dense-neural-network/main.cpp | 100 +++----- .../activation_functions/Activation_Sigmoid.h | 46 ++++ .../activation_functions/Activation_Softmax.h | 2 +- .../neural_networks/layers/Dense_Layer.h | 2 +- .../loss/Loss_BinaryCrossentropy.h | 81 ++++++ .../modules/neural_networks/neural_networks.h | 2 + include/numerics/binary_threshold.h | 51 ++++ .../numerics/detail/binary_threshold_serial.h | 44 ++++ include/numerics/detail/div_serial.h | 19 ++ include/numerics/detail/sub_serial.h | 21 ++ include/numerics/detail/sum_serial.h | 8 +- include/numerics/div.h | 27 +- include/numerics/numerics.h | 1 + include/numerics/sub.h | 24 ++ include/utils/matcast.h | 3 + 21 files changed, 894 insertions(+), 159 deletions(-) create mode 100644 examples/dense-neural-network/Activation_Softmax_Loss_CategoricalCrossentropy-Example.txt create mode 100644 examples/dense-neural-network/Loss_BinaryCrossentropy_example.txt create mode 100644 include/modules/neural_networks/activation_functions/Activation_Sigmoid.h create mode 100644 include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h create mode 100644 include/numerics/binary_threshold.h create mode 100644 include/numerics/detail/binary_threshold_serial.h diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index cecd968..ae25ccc 100644 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -39,8 +39,8 @@ events: checks: - "Detecting CXX compiler ABI info" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -49,13 +49,13 @@ events: variable: "CMAKE_CXX_ABI_COMPILED" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast - /usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn' - Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast + /usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C' + Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp Using built-in specs. COLLECT_GCC=/usr/bin/c++ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa @@ -65,8 +65,8 @@ events: Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a2c08.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc5fTyjy.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_21458.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuSiKHJ.s GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP @@ -87,15 +87,15 @@ events: /usr/include End of search list. Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/' - as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/' + as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_a2c08 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1 - /usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_21458 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1 + /usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458 Using built-in specs. COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper @@ -108,10 +108,10 @@ events: gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4LTvwQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a2c08 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn' + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccR4K2gF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_21458 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C' exitCode: 0 - @@ -151,13 +151,13 @@ events: message: | Parsed CXX implicit link information: link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a2c08/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_a2c08.dir/build.make CMakeFiles/cmTC_a2c08.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-UDWKAn'] - ignore line: [Building CXX object CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_21458/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_21458.dir/build.make CMakeFiles/cmTC_21458.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-6fQL2C'] + ignore line: [Building CXX object CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] @@ -167,8 +167,8 @@ events: ignore line: [Thread model: posix] ignore line: [Supported LTO compression algorithms: zlib zstd] ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a2c08.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc5fTyjy.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_21458.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuSiKHJ.s] ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] ignore line: [] @@ -189,15 +189,15 @@ events: ignore line: [ /usr/include] ignore line: [End of search list.] ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc5fTyjy.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccuSiKHJ.s] ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_a2c08] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2c08.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a2c08 ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_21458] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21458.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_21458 ] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] @@ -210,13 +210,13 @@ events: ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a2c08' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a2c08.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4LTvwQ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a2c08 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_21458' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_21458.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccR4K2gF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_21458 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore arg [-plugin] ==> ignore arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/cc4LTvwQ.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccR4K2gF.res] ==> ignore arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore arg [-plugin-opt=-pass-through=-lgcc] ==> ignore arg [-plugin-opt=-pass-through=-lc] ==> ignore @@ -234,7 +234,7 @@ events: arg [-znow] ==> ignore arg [-zrelro] ==> ignore arg [-o] ==> ignore - arg [cmTC_a2c08] ==> ignore + arg [cmTC_21458] ==> ignore arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] @@ -246,7 +246,7 @@ events: arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [CMakeFiles/cmTC_a2c08.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_21458.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore arg [-lstdc++] ==> lib [stdc++] arg [-lm] ==> lib [m] arg [-lgcc_s] ==> lib [gcc_s] @@ -281,8 +281,8 @@ events: - "CMakeLists.txt:8 (find_package)" description: "Detecting CXX OpenMP compiler info" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -291,13 +291,13 @@ events: variable: "OpenMP_COMPILE_RESULT_CXX_fopenmp" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast - /usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu' - Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o - /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast + /usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS' + Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o + /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp Using built-in specs. COLLECT_GCC=/usr/bin/c++ OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa @@ -307,8 +307,8 @@ events: Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccVR5Lll.s + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpB51rF.s GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP @@ -329,15 +329,15 @@ events: /usr/include End of search list. Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/' - as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/' + as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.' - Linking CXX executable cmTC_ff875 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.' + Linking CXX executable cmTC_b23e5 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v Using built-in specs. COLLECT_GCC=/usr/bin/c++ COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper @@ -351,10 +351,10 @@ events: COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchSaPDX.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_ff875 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu' + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cczYiwNl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b23e5 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS' exitCode: 0 - @@ -366,13 +366,13 @@ events: message: | Parsed CXX OpenMP implicit link information from above output: link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ff875/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_ff875.dir/build.make CMakeFiles/cmTC_ff875.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu'] - ignore line: [Building CXX object CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o] - ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_b23e5/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_b23e5.dir/build.make CMakeFiles/cmTC_b23e5.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS'] + ignore line: [Building CXX object CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o] + ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] @@ -382,8 +382,8 @@ events: ignore line: [Thread model: posix] ignore line: [Supported LTO compression algorithms: zlib zstd] ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-TW1FRu/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_ff875.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccVR5Lll.s] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE -D_REENTRANT /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-GvspNS/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_b23e5.dir/ -dumpbase OpenMPTryFlag.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -std=gnu++14 -version -fopenmp -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccpB51rF.s] ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] ignore line: [] @@ -404,15 +404,15 @@ events: ignore line: [ /usr/include] ignore line: [End of search list.] ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o /tmp/ccVR5Lll.s] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o /tmp/ccpB51rF.s] ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.'] - ignore line: [Linking CXX executable cmTC_ff875] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ff875.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -o cmTC_ff875 -v ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.'] + ignore line: [Linking CXX executable cmTC_b23e5] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b23e5.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -o cmTC_b23e5 -v ] ignore line: [Using built-in specs.] ignore line: [COLLECT_GCC=/usr/bin/c++] ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] @@ -426,13 +426,13 @@ events: ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgomp.spec] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_ff875' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_ff875.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchSaPDX.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_ff875 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_b23e5' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_b23e5.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cczYiwNl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b23e5 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o -lstdc++ -lm -lgomp -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o /usr/lib/gcc/x86_64-linux-gnu/13/crtoffloadend.o] arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore arg [-plugin] ==> ignore arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/cchSaPDX.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cczYiwNl.res] ==> ignore arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore arg [-plugin-opt=-pass-through=-lgcc] ==> ignore arg [-plugin-opt=-pass-through=-lpthread] ==> ignore @@ -451,7 +451,7 @@ events: arg [-znow] ==> ignore arg [-zrelro] ==> ignore arg [-o] ==> ignore - arg [cmTC_ff875] ==> ignore + arg [cmTC_b23e5] ==> ignore arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] @@ -460,7 +460,7 @@ events: arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [CMakeFiles/cmTC_ff875.dir/OpenMPTryFlag.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_b23e5.dir/OpenMPTryFlag.cpp.o] ==> ignore arg [-lstdc++] ==> lib [stdc++] arg [-lm] ==> lib [m] arg [-lgomp] ==> lib [gomp] @@ -492,8 +492,8 @@ events: - "CMakeLists.txt:8 (find_package)" description: "Detecting CXX OpenMP version" directories: - source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd" cmakeVariables: CMAKE_CXX_FLAGS: "" CMAKE_CXX_FLAGS_DEBUG: "-g" @@ -502,17 +502,17 @@ events: variable: "OpenMP_SPECTEST_CXX_" cached: true stdout: | - Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_9bda3/fast - /usr/bin/gmake -f CMakeFiles/cmTC_9bda3.dir/build.make CMakeFiles/cmTC_9bda3.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst' - Building CXX object CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o - /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst/OpenMPCheckVersion.cpp - Linking CXX executable cmTC_9bda3 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9bda3.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp CMakeFiles/cmTC_9bda3.dir/OpenMPCheckVersion.cpp.o -o cmTC_9bda3 - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-8cCtst' + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d43db/fast + /usr/bin/gmake -f CMakeFiles/cmTC_d43db.dir/build.make CMakeFiles/cmTC_d43db.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd' + Building CXX object CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o + /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd/OpenMPCheckVersion.cpp + Linking CXX executable cmTC_d43db + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d43db.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp CMakeFiles/cmTC_d43db.dir/OpenMPCheckVersion.cpp.o -o cmTC_d43db + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-1AoRnd' exitCode: 0 ... diff --git a/build/bin/dense-neural-network b/build/bin/dense-neural-network index 96ee28ba445f9b2df13a4c273e23aac1d3489100..e826a89c68d163e459f5098acc1e3fbbdfaca98f 100755 GIT binary patch literal 154360 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�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 BnzR4_ literal 176960 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 TEw57hZ~v{d|J|fP^0xP5ztiE( diff --git a/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o b/build/examples/dense-neural-network/CMakeFiles/dense-neural-network.dir/main.cpp.o index 6514b24ecc0ed88733d411d850feb81e70ef01d1..fee467bc16740e6bb16f78d40bad1ae3e6ebb9b9 100644 GIT binary patch literal 325752 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

D14G)0o#QeDexmB6%xi^EhSQ|qzJ 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 +//#include +//#include + + + + + +int main(int argc, char const *argv[]) +{ + + uint64_t number_of_classes = 3; + uint64_t number_of_samples = 150; + uint64_t number_of_epochs = 500; + + utils::Mf X; + utils::Mf X_test; + utils::Matrix y; + utils::Matrix y_test; + float data_loss; + float regularization_loss; + float loss; + float accuracy; + + utils::Vector class_targets; + utils::Vector predections; + + + // Create dataset + neural_networks::create_spital_data(number_of_samples, number_of_classes, X, y); + //neural_networks::create_vertical_data(number_of_samples, number_of_classes, X, y); + + // Create Dense layer with 2 input featues and 3 output values + neural_networks::Dense_Layer dense1( + 2, 16, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + + // Create ReLU activation (to be used with Dense layer) + neural_networks::Activation_ReLU activation1; + neural_networks::Dropout_Layer dropout1(0.1); + + + + // Create a second Dense layer with 16 inputs (as we take the vlaues from the last layer) + // and 16 output values + neural_networks::Dense_Layer dense2( + 16, 16, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + neural_networks::Activation_Softmax activation2; + + + // Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer) + // and 3 output values + neural_networks::Dense_Layer dense3( + 16, 16, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + neural_networks::Activation_Sigmoid activation3; + + neural_networks::Dense_Layer dense4( + 16, number_of_classes, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + + // Create a Sfotmax classifier's combined loss and activation + neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy loss_activation; + + // Create optimizer + //neural_networks::Optimizer_SGD optimizer(1, 1e-3, 0.5); + //neural_networks::Optimizer_Adagrad optimizer(1, 1e-3, 1e-6); + //neural_networks::Optimizer_RMSprop optimizer(1, 1e-3, 1e-6, 0.9); + neural_networks::Optimizer_Adam optimizer( + 0.05, // Learning-rate + 5e-5, // Learning-rate decay + 1e-6, // epsilons + 0.9, // beta 1 + 0.999 // beta 2 + ); + + + + // Train in loop + for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){ + + // Perform a forward pass of our training data through this layer + dense1.forward(X); + activation1.forward(dense1.outputs); + dropout1.forward(activation1.outputs); + + dense2.forward(dropout1.outputs); + activation2.forward(dense2.outputs); + + dense3.forward(activation2.outputs); + activation3.forward(dense3.outputs); + + dense4.forward(activation3.outputs); + + // Perform a foard pass through the activation/loss function + // takes the output of the second dense layer here and returns loss + data_loss = loss_activation.forward(dense4.outputs, y); + + // Calculate regularization penalty + regularization_loss = loss_activation.loss.regularization_loss(dense1) + + loss_activation.loss.regularization_loss(dense2) + + loss_activation.loss.regularization_loss(dense3) + + loss_activation.loss.regularization_loss(dense4); + + loss = data_loss + regularization_loss; + + // Calculate accuracy from output of activation2 and targets + //predections = numerics::matargmax_row (loss_activation.outputs); + predections = numerics::argmax_rowwise(loss_activation.outputs); + + if (y.cols() > 1){ + class_targets = numerics::argmax_rowwise(y); + }else{ + class_targets = utils::veccast (y.get_col(0)); + } + + + accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); + + + if (!(epoch%100)){ + std::cout << "epoch: " << epoch; + std::cout << ", acc: " << accuracy; + std::cout << ", loss: " << loss; + std::cout << ", data_loss: " << data_loss; + std::cout << ", regularization_loss: " << regularization_loss; + std::cout << ", lr: " << optimizer.current_learning_rate; + std::cout << std::endl; + } + + // Backward pass + loss_activation.backward(loss_activation.outputs, y); + dense4.backward(loss_activation.dinputs); + + activation3.backward(dense4.dinputs); + dense3.backward(activation3.dinputs); + + activation2.backward(dense3.dinputs); + dense2.backward(activation2.dinputs); + + dropout1.backward(dense2.dinputs); + activation1.backward(dropout1.dinputs); + dense1.backward(activation1.dinputs); + + + // Update weights and biases + optimizer.pre_update_params(); + optimizer.update_params(dense1); + optimizer.update_params(dense2); + optimizer.update_params(dense3); + optimizer.update_params(dense4); + optimizer.post_update_params(); + + } + + // Validate the model + + // Create dataset + neural_networks::create_spital_data(100, number_of_classes, X_test, y_test); + + // Perform a forward pass of our training data through this layer + dense1.forward(X_test); + activation1.forward(dense1.outputs); + //dropout1.forward(activation1.outputs); + + dense2.forward(activation1.outputs); + activation2.forward(dense2.outputs); + + dense3.forward(activation2.outputs); + activation3.forward(dense3.outputs); + + dense4.forward(activation3.outputs); + + // Perform a foard pass through the activation/loss function + // takes the output of the second dense layer here and returns loss + data_loss = loss_activation.forward(dense4.outputs, y_test); + + // Calculate regularization penalty + regularization_loss = loss_activation.loss.regularization_loss(dense1) + + loss_activation.loss.regularization_loss(dense2) + + loss_activation.loss.regularization_loss(dense3) + + loss_activation.loss.regularization_loss(dense4); + + loss = data_loss + regularization_loss; + + // Calculate accuracy from output of activation2 and targets + predections = numerics::argmax_rowwise(loss_activation.outputs); + + + + + if (y.cols() > 1){ + class_targets = numerics::argmax_rowwise(y_test); + }else{ + class_targets = utils::veccast (y_test.get_col(0)); + } + + + accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); + + + std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl; + + return 0; +} \ No newline at end of file diff --git a/examples/dense-neural-network/Loss_BinaryCrossentropy_example.txt b/examples/dense-neural-network/Loss_BinaryCrossentropy_example.txt new file mode 100644 index 0000000..527305a --- /dev/null +++ b/examples/dense-neural-network/Loss_BinaryCrossentropy_example.txt @@ -0,0 +1,205 @@ +#include "core/omp_config.h" + +#include "utils/utils.h" +#include "numerics/numerics.h" +#include "decomp/decomp.h" + +#include "modules/neural_networks/neural_networks.h" +#include "random/random.h" + + + +//#include +//#include +//#include + + + + + +int main(int argc, char const *argv[]) +{ + + uint64_t number_of_classes = 2; + uint64_t number_of_samples = 150; + uint64_t number_of_epochs = 1000; + + utils::Mf X; + utils::Mf X_test; + utils::Matrix y; + utils::Matrix y_test; + float data_loss; + float regularization_loss; + float loss; + float accuracy; + + utils::Vector class_targets; + utils::Vector predictions; + + + // Create dataset + neural_networks::create_spital_data(number_of_samples, number_of_classes, X, y); + //neural_networks::create_vertical_data(number_of_samples, number_of_classes, X, y); + + + // Create Dense layer with 2 input featues and 3 output values + neural_networks::Dense_Layer dense1( + 2, 16, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + + // Create ReLU activation (to be used with Dense layer) + neural_networks::Activation_ReLU activation1; + neural_networks::Dropout_Layer dropout1(0.1); + + + + // Create a second Dense layer with 16 inputs (as we take the vlaues from the last layer) + // and 16 output values + neural_networks::Dense_Layer dense2( + 16, 16, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + neural_networks::Activation_Softmax activation2; + + + // Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer) + // and 3 output values + neural_networks::Dense_Layer dense3( + 16, 1, // input/output + 0.0f, // weight L1 + 5e-4f, // weight L2 + 0.0f, // bias L1 + 5e-4f // bias L2 + ); + neural_networks::Activation_Sigmoid activation3; + + + // Create a Sfotmax classifier's combined loss and activation + //neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy loss_activation; + neural_networks::Loss_BinaryCrossentropy loss_activation; + + // Create optimizer + //neural_networks::Optimizer_SGD optimizer(1, 1e-3, 0.5); + //neural_networks::Optimizer_Adagrad optimizer(1, 1e-3, 1e-6); + //neural_networks::Optimizer_RMSprop optimizer(1, 1e-3, 1e-6, 0.9); + neural_networks::Optimizer_Adam optimizer( + 0.05, // Learning-rate + 5e-5, // Learning-rate decay + 1e-6, // epsilons + 0.9, // beta 1 + 0.999 // beta 2 + ); + + + + // Train in loop + for (uint64_t epoch = 0; epoch < number_of_epochs+1; ++epoch){ + + // Perform a forward pass of our training data through this layer + dense1.forward(X); + activation1.forward(dense1.outputs); + dropout1.forward(activation1.outputs); + + dense2.forward(dropout1.outputs); + activation2.forward(dense2.outputs); + + dense3.forward(activation2.outputs); + activation3.forward(dense3.outputs); + + // Perform a foard pass through the activation/loss function + // takes the output of the second dense layer here and returns loss + data_loss = loss_activation.calculate(activation3.outputs, y); + + // Calculate regularization penalty + regularization_loss = loss_activation.regularization_loss(dense1) + + loss_activation.regularization_loss(dense2) + + loss_activation.regularization_loss(dense3); + + loss = data_loss + regularization_loss; + + // Calculate accuracy from output of activation3 and targets + // Part in the brackets returns a binary mask - array consisting + // of True/False values, multiplying it by 1 changes it into array + // of 1s and 0s + predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0); + accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast(y.get_col(0)))); + + + if (!(epoch%100)){ + + std::cout << "epoch: " << epoch; + std::cout << ", acc: " << accuracy; + std::cout << ", loss: " << loss; + std::cout << ", data_loss: " << data_loss; + std::cout << ", regularization_loss: " << regularization_loss; + std::cout << ", lr: " << optimizer.current_learning_rate; + std::cout << std::endl; + + } + + // Backward pass + loss_activation.backward(activation3.outputs, y); + + activation3.backward(loss_activation.dinputs); + dense3.backward(activation3.dinputs); + + activation2.backward(dense3.dinputs); + dense2.backward(activation2.dinputs); + + dropout1.backward(dense2.dinputs); + activation1.backward(dropout1.dinputs); + dense1.backward(activation1.dinputs); + + // Update weights and biases + optimizer.pre_update_params(); + optimizer.update_params(dense1); + optimizer.update_params(dense2); + optimizer.update_params(dense3); + optimizer.post_update_params(); + + } + + // Validate the model + + // Create dataset + neural_networks::create_spital_data(100, number_of_classes, X_test, y_test); + + // Perform a forward pass of our training data through this layer + dense1.forward(X_test); + activation1.forward(dense1.outputs); + //dropout1.forward(activation1.outputs); + + dense2.forward(activation1.outputs); + activation2.forward(dense2.outputs); + + dense3.forward(activation2.outputs); + activation3.forward(dense3.outputs); + + // Perform a foard pass through the activation/loss function + // takes the output of the second dense layer here and returns loss + data_loss = loss_activation.calculate(activation3.outputs, y_test); + + // Calculate regularization penalty + regularization_loss = loss_activation.regularization_loss(dense1) + + loss_activation.regularization_loss(dense2) + + loss_activation.regularization_loss(dense3); + + loss = data_loss + regularization_loss; + + // Calculate accuracy from output of activation2 and targets + predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0); + + accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast(y_test.get_col(0)))); + + + std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl; + + return 0; +} \ No newline at end of file diff --git a/examples/dense-neural-network/main.cpp b/examples/dense-neural-network/main.cpp index c220b23..527305a 100644 --- a/examples/dense-neural-network/main.cpp +++ b/examples/dense-neural-network/main.cpp @@ -20,9 +20,9 @@ int main(int argc, char const *argv[]) { - uint64_t number_of_classes = 3; - uint64_t number_of_samples = 1000; - uint64_t number_of_epochs = 500; + uint64_t number_of_classes = 2; + uint64_t number_of_samples = 150; + uint64_t number_of_epochs = 1000; utils::Mf X; utils::Mf X_test; @@ -34,13 +34,14 @@ int main(int argc, char const *argv[]) float accuracy; utils::Vector class_targets; - utils::Vector predections; + utils::Vector predictions; // Create dataset neural_networks::create_spital_data(number_of_samples, number_of_classes, X, y); //neural_networks::create_vertical_data(number_of_samples, number_of_classes, X, y); + // Create Dense layer with 2 input featues and 3 output values neural_networks::Dense_Layer dense1( 2, 16, // input/output @@ -65,29 +66,31 @@ int main(int argc, char const *argv[]) 0.0f, // bias L1 5e-4f // bias L2 ); - // Create Softmax activation (to be used with Dense layer) neural_networks::Activation_Softmax activation2; // Create a second Dense layer with 3 inputs (as we take the vlaues from the last layer) // and 3 output values neural_networks::Dense_Layer dense3( - 16, number_of_classes, // input/output + 16, 1, // input/output 0.0f, // weight L1 5e-4f, // weight L2 0.0f, // bias L1 5e-4f // bias L2 ); + neural_networks::Activation_Sigmoid activation3; + // Create a Sfotmax classifier's combined loss and activation - neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy loss_activation; + //neural_networks::Activation_Softmax_Loss_CategoricalCrossentropy loss_activation; + neural_networks::Loss_BinaryCrossentropy loss_activation; // Create optimizer //neural_networks::Optimizer_SGD optimizer(1, 1e-3, 0.5); //neural_networks::Optimizer_Adagrad optimizer(1, 1e-3, 1e-6); //neural_networks::Optimizer_RMSprop optimizer(1, 1e-3, 1e-6, 0.9); neural_networks::Optimizer_Adam optimizer( - 0.05, // Learning-rate + 0.05, // Learning-rate 5e-5, // Learning-rate decay 1e-6, // epsilons 0.9, // beta 1 @@ -101,51 +104,36 @@ int main(int argc, char const *argv[]) // Perform a forward pass of our training data through this layer dense1.forward(X); - - // Perform a forward pass thourgh activation function - // takes the output fo the first layer here activation1.forward(dense1.outputs); dropout1.forward(activation1.outputs); - // Perform a forward pass through second Dense layer - // takes output of activation function of the first layer as input dense2.forward(dropout1.outputs); - - - // Perform a forward pass thourgh activation function - // takes the output fo the first layer here activation2.forward(dense2.outputs); - // Perform a forward pass through second Dense layer - // takes output of activation function of the first layer as input dense3.forward(activation2.outputs); - - + activation3.forward(dense3.outputs); // Perform a foard pass through the activation/loss function // takes the output of the second dense layer here and returns loss - data_loss = loss_activation.forward(dense3.outputs, y); + data_loss = loss_activation.calculate(activation3.outputs, y); // Calculate regularization penalty - regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3); + regularization_loss = loss_activation.regularization_loss(dense1) + + loss_activation.regularization_loss(dense2) + + loss_activation.regularization_loss(dense3); loss = data_loss + regularization_loss; - // Calculate accuracy from output of activation2 and targets - //predections = numerics::matargmax_row (loss_activation.outputs); - predections = numerics::argmax_rowwise(loss_activation.outputs); - - if (y.cols() > 1){ - class_targets = numerics::argmax_rowwise(y); - }else{ - class_targets = utils::veccast (y.get_col(0)); - } - - - accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); + // Calculate accuracy from output of activation3 and targets + // Part in the brackets returns a binary mask - array consisting + // of True/False values, multiplying it by 1 changes it into array + // of 1s and 0s + predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0); + accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast(y.get_col(0)))); if (!(epoch%100)){ + std::cout << "epoch: " << epoch; std::cout << ", acc: " << accuracy; std::cout << ", loss: " << loss; @@ -153,18 +141,22 @@ int main(int argc, char const *argv[]) std::cout << ", regularization_loss: " << regularization_loss; std::cout << ", lr: " << optimizer.current_learning_rate; std::cout << std::endl; + } // Backward pass - loss_activation.backward(loss_activation.outputs, y); - dense3.backward(loss_activation.dinputs); + loss_activation.backward(activation3.outputs, y); + + activation3.backward(loss_activation.dinputs); + dense3.backward(activation3.dinputs); + activation2.backward(dense3.dinputs); dense2.backward(activation2.dinputs); + dropout1.backward(dense2.dinputs); activation1.backward(dropout1.dinputs); dense1.backward(activation1.dinputs); - // Update weights and biases optimizer.pre_update_params(); optimizer.update_params(dense1); @@ -179,48 +171,34 @@ int main(int argc, char const *argv[]) // Create dataset neural_networks::create_spital_data(100, number_of_classes, X_test, y_test); - // Perform a forward pass of our testing data through this layer + // Perform a forward pass of our training data through this layer dense1.forward(X_test); - - - // Perform a forward pass thourgh activation function - // takes the output fo the first layer here activation1.forward(dense1.outputs); + //dropout1.forward(activation1.outputs); - // Perform a forward pass through second Dense layer - // takes output of activation function of the first layer as input dense2.forward(activation1.outputs); - - // Perform a forward pass thourgh activation function - // takes the output fo the first layer here activation2.forward(dense2.outputs); - // Perform a forward pass through second Dense layer - // takes output of activation function of the first layer as input dense3.forward(activation2.outputs); - + activation3.forward(dense3.outputs); // Perform a foard pass through the activation/loss function // takes the output of the second dense layer here and returns loss - data_loss = loss_activation.forward(dense3.outputs, y_test); + data_loss = loss_activation.calculate(activation3.outputs, y_test); // Calculate regularization penalty - regularization_loss = loss_activation.loss.regularization_loss(dense1) + loss_activation.loss.regularization_loss(dense2) + loss_activation.loss.regularization_loss(dense3); + regularization_loss = loss_activation.regularization_loss(dense1) + + loss_activation.regularization_loss(dense2) + + loss_activation.regularization_loss(dense3); loss = data_loss + regularization_loss; // Calculate accuracy from output of activation2 and targets - predections = numerics::argmax_rowwise(loss_activation.outputs); + predictions = numerics::greater_than(activation3.outputs, 0.5f).get_col(0); - if (y.cols() > 1){ - class_targets = numerics::argmax_rowwise(y_test); - }else{ - class_targets = utils::veccast (y_test.get_col(0)); - } + accuracy = numerics::mean(numerics::equal_elementwise_serial(predictions, utils::veccast(y_test.get_col(0)))); - accuracy = numerics::mean( utils::veccast (numerics::equal_elementwise_serial(predections, class_targets))); - std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl; return 0; diff --git a/include/modules/neural_networks/activation_functions/Activation_Sigmoid.h b/include/modules/neural_networks/activation_functions/Activation_Sigmoid.h new file mode 100644 index 0000000..2067c45 --- /dev/null +++ b/include/modules/neural_networks/activation_functions/Activation_Sigmoid.h @@ -0,0 +1,46 @@ +#pragma once + +#include "core/omp_config.h" + +#include "utils/vector.h" +#include "utils/matrix.h" + +#include "numerics/neg.h" +#include "numerics/exp.h" +#include "numerics/add.h" +#include "numerics/div.h" +#include "numerics/sub.h" +#include "numerics/mul.h" + +namespace neural_networks{ + + template + struct Activation_Sigmoid{ + + utils::Matrix _inputs; + utils::Matrix outputs; + + utils::Matrix dinputs; + + void forward(const utils::Matrix& inputs){ + _inputs = inputs; + + outputs = numerics::neg(inputs); + outputs = numerics::exp(outputs); + outputs = numerics::add(outputs, T{1}); + outputs = numerics::div(T{1}, outputs); + } + void backward(const utils::Matrix& dvalues){ + + dinputs = numerics::sub(T{1}, outputs); + dinputs = numerics::mul(dvalues, dinputs); + dinputs = numerics::mul(dinputs, outputs); + + + + } + }; + + + +} // end namespace neural_networks \ No newline at end of file diff --git a/include/modules/neural_networks/activation_functions/Activation_Softmax.h b/include/modules/neural_networks/activation_functions/Activation_Softmax.h index 9409426..1237718 100644 --- a/include/modules/neural_networks/activation_functions/Activation_Softmax.h +++ b/include/modules/neural_networks/activation_functions/Activation_Softmax.h @@ -29,7 +29,7 @@ namespace neural_networks{ utils::Matrix exp_values = numerics::exp(numerics::sub_colwise(inputs, numerics::max_rowwise(inputs))); // Normalize them for each sample - utils::Matrix probabilities = numerics::div_colwise(exp_values, numerics::sum_colwise(exp_values)); + utils::Matrix probabilities = numerics::div_colwise(exp_values, numerics::sum_rowwise(exp_values)); outputs = probabilities; } diff --git a/include/modules/neural_networks/layers/Dense_Layer.h b/include/modules/neural_networks/layers/Dense_Layer.h index 2bcaf5e..be4fbde 100644 --- a/include/modules/neural_networks/layers/Dense_Layer.h +++ b/include/modules/neural_networks/layers/Dense_Layer.h @@ -63,7 +63,7 @@ namespace neural_networks{ void backward(const utils::Matrix& dvalues){ // Gradients on parameters dweights = numerics::matmul(numerics::transpose(_inputs), dvalues); - dbiases = numerics::sum_rowwise(dvalues); + dbiases = numerics::sum_colwise(dvalues); // Gradients on regularization diff --git a/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h b/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h new file mode 100644 index 0000000..d59c772 --- /dev/null +++ b/include/modules/neural_networks/loss/Loss_BinaryCrossentropy.h @@ -0,0 +1,81 @@ +#pragma once + +#include "core/omp_config.h" + +#include "utils/vector.h" +#include "utils/matrix.h" +#include "utils/matcast.h" + +#include "numerics/clip.h" +#include "numerics/log.h" +#include "numerics/sub.h" + +#include "Loss.h" + + +namespace neural_networks{ + + template + struct Loss_BinaryCrossentropy : Loss { + + utils::Matrix dinputs; + utils::Matrix y_true; + + + utils::Vector forward(const utils::Matrix& y_pred, const utils::Matrix& y_true) override{ + + this->y_true = utils::matcast(y_true); + + // Clip daa to prevent division by 0 + // Clip both sides not to drag mean towards any value + utils::Matrix y_pred_clipped = numerics::clip(y_pred, Td{1e-7}, Td{1.0} - Td{1e-7}); + + // Calculate sample-wise loss + utils::Matrix sample_losses_temp = numerics::log(numerics::sub(Td{1}, y_pred_clipped)); + sample_losses_temp = numerics::mul(sample_losses_temp, numerics::sub(Td{1}, this->y_true)); + sample_losses_temp = numerics::add(sample_losses_temp, numerics::mul(this->y_true, numerics::log(y_pred_clipped))); + sample_losses_temp = numerics::neg(sample_losses_temp); + + + + + + utils::Vector sample_losses = numerics::mean_rowwise(sample_losses_temp); + + // Return losses + return sample_losses; + } + + void backward(const utils::Matrix& dvalues, const utils::Matrix& y_true) override{ + + /*std::cout << "BCE backward y_true: " + << y_true.rows() << " x " << y_true.cols() + << std::endl;*/ + + + // Number of samples + const Td samples = static_cast (this->y_true.rows()); + // Number of outputs in every sample + const Td outputs = static_cast (dvalues.cols()); + + // Clip data to prevent division by 0 + // Clip both sides to not drag mean towards any value + utils::Matrix clipped_dvalues = numerics::clip(dvalues, Td{1e-7}, Td{1.0} - Td{1e-7}); + + + // Calculate gradient + dinputs = numerics::div(numerics::neg(numerics::sub(numerics::div(this->y_true, clipped_dvalues), numerics::div(numerics::sub(Td{1}, this->y_true), numerics::sub(Td{1}, clipped_dvalues)))), outputs); + // Normalize gradients + dinputs = numerics::div(dinputs, samples); + + /* + std::cout << "BCE backward dinputs: " + << dinputs.rows() << " x " << dinputs.cols() + << std::endl;*/ + + } + }; + + + +} // end namespace neural_networks \ No newline at end of file diff --git a/include/modules/neural_networks/neural_networks.h b/include/modules/neural_networks/neural_networks.h index 718f9eb..35abaef 100644 --- a/include/modules/neural_networks/neural_networks.h +++ b/include/modules/neural_networks/neural_networks.h @@ -12,10 +12,12 @@ #include "activation_functions/Activation_ReLU.h" #include "activation_functions/Activation_Softmax.h" #include "activation_functions/Activation_Softmax_Loss_CategoricalCrossentropy.h" +#include "activation_functions/Activation_Sigmoid.h" #include "loss/Loss.h" // Base #include "loss/Loss_CategoricalCrossentrophy.h" +#include "loss/Loss_BinaryCrossentropy.h" #include "optimizers/Optimizer_SGD.h" diff --git a/include/numerics/binary_threshold.h b/include/numerics/binary_threshold.h new file mode 100644 index 0000000..8f2a097 --- /dev/null +++ b/include/numerics/binary_threshold.h @@ -0,0 +1,51 @@ +#pragma once + +#include "core/omp_config.h" +#include "detail/binary_threshold_serial.h" + + +namespace numerics{ + + // ---------------- Elementwise ---------------- + template + inline void inplace_greater_than(T& a, const T c) { + detail::inplace_greater_than_serial(a, c); + } + + template + inline T greater_than(const T a, const T c) { + T out = a; + inplace_greater_than(out, c); + return out; + } + + template + inline void inplace_greater_than(utils::Vector& v, const T c) { + detail::inplace_greater_than_serial(v, c); + } + + template + inline utils::Vector greater_than(const utils::Vector& v, const T c) { + utils::Vector out = v; + inplace_greater_than(out, c); + return out; + } + + + + template + inline void inplace_greater_than(utils::Matrix& A, const T c) { + detail::inplace_greater_than_serial(A, c); + } + + template + inline utils::Matrix greater_than(const utils::Matrix& A, const T c) { + utils::Matrix out = A; + inplace_greater_than(out, c); + return out; + } + + + + +} \ No newline at end of file diff --git a/include/numerics/detail/binary_threshold_serial.h b/include/numerics/detail/binary_threshold_serial.h new file mode 100644 index 0000000..abc137f --- /dev/null +++ b/include/numerics/detail/binary_threshold_serial.h @@ -0,0 +1,44 @@ +#pragma once + +#include //uint64_t +#include // std::abs + +#include "utils/vector.h" +#include "utils/matrix.h" + +namespace numerics::detail{ + + + // ---------------- Elemenwise ---------------- + template + void inplace_greater_than_serial(T& a, const T c) { + if (a > c){ + a = T{1}; + } + else{ + a = T{0}; + } + } + + template + void inplace_greater_than_serial(utils::Vector& v, const T c) { + for (uint64_t i = 0; i < v.size(); ++i){ + inplace_greater_than_serial(v[i], c); + } + } + + + template + void inplace_greater_than_serial(utils::Matrix& A, const T c) { + const uint64_t rows = A.rows(); + const uint64_t cols = A.cols(); + for (uint64_t i = 0; i < rows; ++i){ + for (uint64_t j = 0; j < cols; ++j){ + inplace_greater_than_serial(A(i,j), c); + } + } + } + + +} // namespace numerics + diff --git a/include/numerics/detail/div_serial.h b/include/numerics/detail/div_serial.h index ea48533..a96eed6 100644 --- a/include/numerics/detail/div_serial.h +++ b/include/numerics/detail/div_serial.h @@ -20,12 +20,31 @@ namespace numerics::detail{ } } + template + void inplace_div_scalar_serial(const T c, utils::Matrix& A) { + const uint64_t rows = A.rows(); + const uint64_t cols = A.cols(); + for (uint64_t i = 0; i < rows; ++i){ + for (uint64_t j = 0; j < cols; ++j){ + A(i,j) = c / A(i,j); + } + } + } + template void inplace_div_scalar_serial(utils::Vector& v, const T c) { for (uint64_t i = 0; i < v.size(); ++i){ v[i] /= c; } } + + template + void inplace_div_scalar_serial(const T c, utils::Vector& v) { + for (uint64_t i = 0; i < v.size(); ++i){ + v[i] = c / v[i]; + } + } + // ---------------- Elemenwise ---------------- template void inplace_div_elementwise_serial(utils::Matrix& A, const utils::Matrix& B) { diff --git a/include/numerics/detail/sub_serial.h b/include/numerics/detail/sub_serial.h index faf67db..4d0bb47 100644 --- a/include/numerics/detail/sub_serial.h +++ b/include/numerics/detail/sub_serial.h @@ -20,12 +20,33 @@ namespace numerics::detail{ } } + template + void inplace_sub_scalar_serial(const T c, utils::Matrix& A) { + const uint64_t rows = A.rows(); + const uint64_t cols = A.cols(); + for (uint64_t i = 0; i < rows; ++i){ + for (uint64_t j = 0; j < cols; ++j){ + A(i,j) = c - A(i,j); + } + } + } + + + template void inplace_sub_scalar_serial(utils::Vector& v, const T c) { for (uint64_t i = 0; i < v.size(); ++i){ v[i] -= c; } } + + template + void inplace_sub_scalar_serial(const T c, utils::Vector& v) { + for (uint64_t i = 0; i < v.size(); ++i){ + v[i] = c - v[i]; + } + } + // ---------------- Elemenwise ---------------- template void inplace_sub_elementwise_serial(utils::Matrix& A, const utils::Matrix& B) { diff --git a/include/numerics/detail/sum_serial.h b/include/numerics/detail/sum_serial.h index ff32eff..9bc36f0 100644 --- a/include/numerics/detail/sum_serial.h +++ b/include/numerics/detail/sum_serial.h @@ -38,10 +38,10 @@ namespace numerics::detail{ utils::Vector sum_rowwise_serial(const utils::Matrix& A) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); - utils::Vector sum(cols, T{0}); + utils::Vector sum(rows, T{0}); for (uint64_t i = 0; i < rows; ++i){ for (uint64_t j = 0; j < cols; ++j){ - sum[j] += A(i,j); + sum[i] += A(i,j); } } return sum; @@ -51,10 +51,10 @@ namespace numerics::detail{ utils::Vector sum_colwise_serial(const utils::Matrix& A) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); - utils::Vector sum(rows, T{0}); + utils::Vector sum(cols, T{0}); for (uint64_t i = 0; i < rows; ++i){ for (uint64_t j = 0; j < cols; ++j){ - sum[i] += A(i,j); + sum[j] += A(i,j); } } return sum; diff --git a/include/numerics/div.h b/include/numerics/div.h index 41098ab..a0cd835 100644 --- a/include/numerics/div.h +++ b/include/numerics/div.h @@ -11,7 +11,6 @@ namespace numerics{ inline void inplace_div(utils::Matrix& A, const T b) { detail::inplace_div_scalar_serial(A,b); } - template inline utils::Matrix div(const utils::Matrix& A, const T b) { utils::Matrix out = A; @@ -19,17 +18,41 @@ namespace numerics{ return out; } + template + inline void inplace_div(const T b, utils::Matrix& A) { + detail::inplace_div_scalar_serial(b, A); + } + template + inline utils::Matrix div(const T b, const utils::Matrix& A) { + utils::Matrix out = A; + inplace_div(b, out); + return out; + } + + template inline void inplace_div(utils::Vector& v, const T b) { detail::inplace_div_scalar_serial(v,b); } - template inline utils::Vector div(const utils::Vector& v, const T b) { utils::Vector out = v; inplace_div(out, b); return out; } + + template + inline void inplace_div(const T b, utils::Vector& v) { + detail::inplace_div_scalar_serial(b, v); + } + template + inline utils::Vector div(const T b, const utils::Vector& v) { + utils::Vector out = v; + inplace_div(b, out); + return out; + } + + // ---------------- Elementwise ---------------- template inline void inplace_div(utils::Matrix& A, const utils::Matrix& B) { diff --git a/include/numerics/numerics.h b/include/numerics/numerics.h index dd5beff..9990509 100644 --- a/include/numerics/numerics.h +++ b/include/numerics/numerics.h @@ -4,6 +4,7 @@ #include "./numerics/add.h" #include "./numerics/argmax.h" #include "./numerics/argmin.h" +#include "./numerics/binary_threshold.h" #include "./numerics/clip.h" #include "./numerics/div.h" #include "./numerics/dot.h" diff --git a/include/numerics/sub.h b/include/numerics/sub.h index 942e46f..e53b33f 100644 --- a/include/numerics/sub.h +++ b/include/numerics/sub.h @@ -11,6 +11,11 @@ namespace numerics{ inline void inplace_sub(utils::Matrix& A, const T b) { detail::inplace_sub_scalar_serial(A,b); } + template + inline void inplace_sub(const T b, utils::Matrix& A) { + detail::inplace_sub_scalar_serial(b,A); + } + template inline utils::Matrix sub(const utils::Matrix& A, const T b) { @@ -18,11 +23,22 @@ namespace numerics{ inplace_sub(out, b); return out; } + template + inline utils::Matrix sub(const T b, const utils::Matrix& A) { + utils::Matrix out = A; + inplace_sub(b, out); + return out; + } + template inline void inplace_sub(utils::Vector& v, const T b) { detail::inplace_sub_scalar_serial(v,b); } + template + inline void inplace_sub(const T b, utils::Vector& v) { + detail::inplace_sub_scalar_serial(b,v); + } template inline utils::Vector sub(const utils::Vector& v, const T b) { @@ -30,6 +46,14 @@ namespace numerics{ inplace_sub(out, b); return out; } + template + inline utils::Vector sub(const T b, const utils::Vector& v) { + utils::Vector out = v; + inplace_sub(b, out); + return out; + } + + // ---------------- Elementwise ---------------- template inline void inplace_sub(utils::Matrix& A, const utils::Matrix& B) { diff --git a/include/utils/matcast.h b/include/utils/matcast.h index 3858bdd..d811cb2 100644 --- a/include/utils/matcast.h +++ b/include/utils/matcast.h @@ -31,5 +31,8 @@ namespace utils{ return B; } +// utils::matcast (A); + + } // end namespace utils