From 48f329feef36b51c8d665ca1228a665fdd35e961 Mon Sep 17 00:00:00 2001 From: Michelle Date: Sat, 3 Jan 2026 22:10:50 +0100 Subject: [PATCH] Regulaization Started on regulaization in Loss.h. I need to refactor the matsum.h since I need a total sum over the matrix. Also matmul needs a elementwise matmul function, which is the next this in the ragulaization --- build/CMakeFiles/CMakeConfigureLog.yaml | 180 +++--- build/bin/dense-neural-network | Bin 126048 -> 135296 bytes .../compiler_depend.internal | 133 ++-- .../compiler_depend.make | 587 +++++++++--------- .../dense-neural-network.dir/main.cpp.o | Bin 271560 -> 286512 bytes .../dense-neural-network.dir/main.cpp.o.d | 8 +- examples/dense-neural-network/main.cpp | 49 +- .../neural_networks/layers/Dense_Layer.h | 72 ++- include/modules/neural_networks/loss/Loss.h | 61 +- .../modules/neural_networks/neural_networks.h | 2 + .../optimizers/Optimizer_Adam.h | 134 ++++ .../optimizers/Optimizer_RMSprop.h | 81 +++ include/numerics/matabs.h | 29 + include/numerics/matmean.h | 23 +- include/numerics/matsum.h | 14 + include/numerics/numerics.h | 1 + include/utils/vector.h | 17 + 17 files changed, 881 insertions(+), 510 deletions(-) create mode 100644 include/modules/neural_networks/optimizers/Optimizer_Adam.h create mode 100644 include/modules/neural_networks/optimizers/Optimizer_RMSprop.h create mode 100644 include/numerics/matabs.h diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index 04c3978..6371290 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-b1da2F" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-b1da2F" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I" 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-b1da2F' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d16e5/fast - /usr/bin/gmake -f CMakeFiles/cmTC_d16e5.dir/build.make CMakeFiles/cmTC_d16e5.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-b1da2F' - Building CXX object CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_d16e5.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_9f333/fast + /usr/bin/gmake -f CMakeFiles/cmTC_9f333.dir/build.make CMakeFiles/cmTC_9f333.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' + Building CXX object CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_9f333.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) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.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_d16e5.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/ccZbh2e6.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.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_9f333.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/ccVEzwg0.s GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) 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: c81c05345ce537099dafd5580045814a - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.dir/' - as -v --64 -o CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccZbh2e6.s + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/' + as -v --64 -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccVEzwg0.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_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_d16e5 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d16e5.dir/link.txt --verbose=1 - /usr/bin/c++ -v CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_d16e5 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_9f333 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9f333.dir/link.txt --verbose=1 + /usr/bin/c++ -v CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9f333 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) 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_d16e5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d16e5.' - /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/ccgscRGc.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_d16e5 /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_d16e5.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_d16e5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d16e5.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-b1da2F' + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.' + /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/ccNAnfT8.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_9f333 /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_9f333.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_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I' 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-b1da2F'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_d16e5/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_d16e5.dir/build.make CMakeFiles/cmTC_d16e5.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-b1da2F'] - ignore line: [Building CXX object CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_d16e5.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_9f333/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_9f333.dir/build.make CMakeFiles/cmTC_9f333.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-3WNg4I'] + ignore line: [Building CXX object CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_9f333.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) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.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_d16e5.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/ccZbh2e6.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.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_9f333.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/ccVEzwg0.s] ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) 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: c81c05345ce537099dafd5580045814a] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccZbh2e6.s] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccVEzwg0.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_d16e5.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_d16e5] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d16e5.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_d16e5.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_d16e5 ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_9f333] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9f333.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_9f333.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9f333 ] 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) ] 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_d16e5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_d16e5.'] - 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/ccgscRGc.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_d16e5 /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_d16e5.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_9f333' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9f333.'] + 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/ccNAnfT8.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_9f333 /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_9f333.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/ccgscRGc.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccNAnfT8.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_d16e5] ==> ignore + arg [cmTC_9f333] ==> 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_d16e5.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_9f333.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-W9PoXh" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m" 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-W9PoXh' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8b525/fast - /usr/bin/gmake -f CMakeFiles/cmTC_8b525.dir/build.make CMakeFiles/cmTC_8b525.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh' - Building CXX object CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o - /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh/OpenMPTryFlag.cpp + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_eef02/fast + /usr/bin/gmake -f CMakeFiles/cmTC_eef02.dir/build.make CMakeFiles/cmTC_eef02.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' + Building CXX object CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o + /usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/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) - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.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-W9PoXh/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_8b525.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/ccoUjdby.s + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.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-HzMn6m/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_eef02.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/ccP8rDhW.s GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04) 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: c81c05345ce537099dafd5580045814a - COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.dir/' - as -v --64 -o CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o /tmp/ccoUjdby.s + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/' + as -v --64 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o /tmp/ccP8rDhW.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_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.' - Linking CXX executable cmTC_8b525 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8b525.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o -o cmTC_8b525 -v + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.' + Linking CXX executable cmTC_eef02 + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eef02.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -o cmTC_eef02 -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_8b525' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_8b525.' - /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/cccDXP1K.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_8b525 /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_8b525.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_8b525' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_8b525.' - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh' + COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-o' 'cmTC_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.' + /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/ccUV3KfN.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_eef02 /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_eef02.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_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.' + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m' 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-W9PoXh'] + ignore line: [Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8b525/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_8b525.dir/build.make CMakeFiles/cmTC_8b525.dir/build] - ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh'] - ignore line: [Building CXX object CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o] - ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-W9PoXh/OpenMPTryFlag.cpp] + ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_eef02/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_eef02.dir/build.make CMakeFiles/cmTC_eef02.dir/build] + ignore line: [gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m'] + ignore line: [Building CXX object CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o] + ignore line: [/usr/bin/c++ -fopenmp -v -std=gnu++14 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-HzMn6m/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) ] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.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-W9PoXh/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_8b525.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/ccoUjdby.s] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.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-HzMn6m/OpenMPTryFlag.cpp -quiet -dumpdir CMakeFiles/cmTC_eef02.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/ccP8rDhW.s] ignore line: [GNU C++14 (Ubuntu 13.3.0-6ubuntu2~24.04) 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: c81c05345ce537099dafd5580045814a] - ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o /tmp/ccoUjdby.s] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o /tmp/ccP8rDhW.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_8b525.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.'] - ignore line: [Linking CXX executable cmTC_8b525] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8b525.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_8b525.dir/OpenMPTryFlag.cpp.o -o cmTC_8b525 -v ] + ignore line: [COLLECT_GCC_OPTIONS='-fopenmp' '-v' '-std=gnu++14' '-o' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.'] + ignore line: [Linking CXX executable cmTC_eef02] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eef02.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -fopenmp -v CMakeFiles/cmTC_eef02.dir/OpenMPTryFlag.cpp.o -o cmTC_eef02 -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_8b525' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_8b525.'] - 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/cccDXP1K.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_8b525 /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_8b525.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_eef02' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-pthread' '-dumpdir' 'cmTC_eef02.'] + 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/ccUV3KfN.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_eef02 /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_eef02.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/cccDXP1K.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccUV3KfN.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_8b525] ==> ignore + arg [cmTC_eef02] ==> 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_8b525.dir/OpenMPTryFlag.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_eef02.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-wSxqJG" - binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-wSxqJG" + source: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb" + binary: "/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb" 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-wSxqJG' + Change Dir: '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_4bc42/fast - /usr/bin/gmake -f CMakeFiles/cmTC_4bc42.dir/build.make CMakeFiles/cmTC_4bc42.dir/build - gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-wSxqJG' - Building CXX object CMakeFiles/cmTC_4bc42.dir/OpenMPCheckVersion.cpp.o - /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_4bc42.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-wSxqJG/OpenMPCheckVersion.cpp - Linking CXX executable cmTC_4bc42 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4bc42.dir/link.txt --verbose=1 - /usr/bin/c++ -fopenmp CMakeFiles/cmTC_4bc42.dir/OpenMPCheckVersion.cpp.o -o cmTC_4bc42 - gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-wSxqJG' + Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1a3cf/fast + /usr/bin/gmake -f CMakeFiles/cmTC_1a3cf.dir/build.make CMakeFiles/cmTC_1a3cf.dir/build + gmake[1]: Entering directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' + Building CXX object CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o + /usr/bin/c++ -fopenmp -std=gnu++14 -o CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o -c /home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb/OpenMPCheckVersion.cpp + Linking CXX executable cmTC_1a3cf + /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1a3cf.dir/link.txt --verbose=1 + /usr/bin/c++ -fopenmp CMakeFiles/cmTC_1a3cf.dir/OpenMPCheckVersion.cpp.o -o cmTC_1a3cf + gmake[1]: Leaving directory '/home/atlas/Documents/Git/Flux/build/CMakeFiles/CMakeScratch/TryCompile-hVlmkb' exitCode: 0 ... diff --git a/build/bin/dense-neural-network b/build/bin/dense-neural-network index b74af851db1555d0caf5ed3c7513171eb5a18921..22b583dc0e12b73baf7448cf86554373a5a19d3b 100755 GIT binary patch literal 135296 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 literal 126048 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

sc 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 y; - utils::Vector class_targets; + utils::Matrix y_test; float loss; float accuracy; + utils::Vector class_targets; utils::Vector predections; @@ -52,7 +54,9 @@ int main(int argc, char const *argv[]) // 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_Adagrad optimizer(1, 1e-3, 1e-6); + //neural_networks::Optimizer_RMSprop optimizer(1, 1e-3, 1e-6, 0.9); + neural_networks::Optimizer_Adam optimizer(1, 1e-3, 1e-6, 0.9, 0.999); @@ -73,6 +77,7 @@ int main(int argc, char const *argv[]) // Perform a foard pass through the activation/loss function // takes the output of the second dense layer here and returns loss loss = loss_activation.forward(dense2.outputs, y); + loss_activation.loss.regularization_loss(dense1); // Calculate accuracy from output of activation2 and targets predections = numerics::matargmax_row(loss_activation.outputs); @@ -109,6 +114,40 @@ int main(int argc, char const *argv[]) 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 testing 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); + + // 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 foard pass through the activation/loss function + // takes the output of the second dense layer here and returns loss + loss = loss_activation.forward(dense2.outputs, y); + + // Calculate accuracy from output of activation2 and targets + predections = numerics::matargmax_row(loss_activation.outputs); + + if (y.cols() < 1){ + class_targets = numerics::matargmax_row(y); + }else{ + class_targets = y.get_col(0); + } + + + accuracy = numerics::vecmean_equal(predections, class_targets); + + std::cout << "validation, acc: " << accuracy << ", loss: " << loss << std::endl; + return 0; } \ No newline at end of file diff --git a/include/modules/neural_networks/layers/Dense_Layer.h b/include/modules/neural_networks/layers/Dense_Layer.h index 3afecfa..b7c19a3 100644 --- a/include/modules/neural_networks/layers/Dense_Layer.h +++ b/include/modules/neural_networks/layers/Dense_Layer.h @@ -12,45 +12,51 @@ namespace neural_networks{ template struct Dense_Layer{ - utils::Matrix _inputs; - utils::Matrix weights; - utils::Vector biases; - utils::Matrix outputs; + T weight_regularizer_l1 = {1e-4}; + T weight_regularizer_l2 = {1e-4}; - utils::Matrix dweights; - utils::Vector dbiases; - utils::Matrix dinputs; + T bias_regularizer_l1 = {1e-4}; + T bias_regularizer_l2 = {1e-4}; - // Variables for optimizers - utils::Matrix weight_momentums; - utils::Vector bias_momentums; - utils::Matrix weight_cache; - utils::Vector bias_cache; - - // Default Constructor - Dense_Layer() = default; + utils::Matrix _inputs; + utils::Matrix weights; + utils::Vector biases; + utils::Matrix outputs; - // Constructor - Dense_Layer(const uint64_t n_inputs, const uint64_t n_neurons){ - - weights.random(n_inputs, n_neurons, -1, 1); - biases.resize(n_neurons, T{0}); - - } + utils::Matrix dweights; + utils::Vector dbiases; + utils::Matrix dinputs; - void forward(const utils::Matrix& inputs){ - _inputs = inputs; - outputs = numerics::matadd(numerics::matmul_auto(inputs, weights), biases, "row"); - } + // Variables for optimizers + utils::Matrix weight_momentums; + utils::Vector bias_momentums; + utils::Matrix weight_cache; + utils::Vector bias_cache; + + // Default Constructor + Dense_Layer() = default; - void backward(const utils::Matrix& dvalues){ - // Gradients on parameters - dweights = numerics::matmul(numerics::transpose(_inputs), dvalues); - dbiases = numerics::matsum(dvalues, "row"); - //Gradient on values - dinputs = numerics::matmul(dvalues, numerics::transpose(weights)); + // Constructor + Dense_Layer(const uint64_t n_inputs, const uint64_t n_neurons){ + + weights.random(n_inputs, n_neurons, -1, 1); + biases.resize(n_neurons, T{0}); + + } - } + void forward(const utils::Matrix& inputs){ + _inputs = inputs; + outputs = numerics::matadd(numerics::matmul_auto(inputs, weights), biases, "row"); + } + + void backward(const utils::Matrix& dvalues){ + // Gradients on parameters + dweights = numerics::matmul(numerics::transpose(_inputs), dvalues); + dbiases = numerics::matsum(dvalues, "row"); + //Gradient on values + dinputs = numerics::matmul(dvalues, numerics::transpose(weights)); + + } }; diff --git a/include/modules/neural_networks/loss/Loss.h b/include/modules/neural_networks/loss/Loss.h index 5f72a35..e291d0f 100644 --- a/include/modules/neural_networks/loss/Loss.h +++ b/include/modules/neural_networks/loss/Loss.h @@ -5,30 +5,65 @@ #include "./utils/vector.h" #include "./utils/matrix.h" -#include "./numerics/vecmean.h" +#include "numerics/vecmean.h" +#include "numerics/matabs.h" +#include "numerics/matmean.h" namespace neural_networks{ template struct Loss{ - utils::Vector sample_losses; - utils::Matrix dinputs; - Td data_loss; + utils::Vector sample_losses; + utils::Matrix dinputs; + Td data_loss; + Td regularization_losss; - virtual utils::Vector forward(const utils::Matrix& output, const utils::Matrix& y) = 0; - virtual void backward(const utils::Matrix& dvalues, const utils::Matrix& y) = 0; + virtual utils::Vector forward(const utils::Matrix& output, const utils::Matrix& y) = 0; + virtual void backward(const utils::Matrix& dvalues, const utils::Matrix& y) = 0; - Td calculate(const utils::Matrix& output, const utils::Matrix& y){ - - // Calculate sample losses - sample_losses = forward(output, y); + Td calculate(const utils::Matrix& output, const utils::Matrix& y){ + + // Calculate sample losses + sample_losses = forward(output, y); - // Calculate mean loss - data_loss = numerics::vecmean(sample_losses); - return data_loss; + // Calculate mean loss + data_loss = numerics::vecmean(sample_losses); + return data_loss; + + } + + template + Td regularization_loss(const Layer& layer){ + // 0 by default + regularization_losss = 0; + + // L1 regularization - weights + // calculate only when factor greater than 0 + if (layer.weight_regularizer_l1){ + regularization_losss += layer.weight_regularizer_l1 * numerics::matsum_coeff(numerics::matabs(layer.weights)); } + + // L2 regularization - weights + if (layer.weight_regularizer_l2){ + regularization_losss += layer.weight_regularizer_l2 * numerics::matsum_coeff(numerics::matmul(layer.weights,layer.weights)); // elementwise! + } + + // L1 regularization - biases + // calculate only when factor greater than 0 + if (layer.bias_regularizer_l1){ + regularization_losss += layer.bias_regularizer_l1 * layer.biases.abs().sum(); + } + // L2 regularization - biases + if (layer.bias_regularizer_l2){ + regularization_losss += layer.bias_regularizer_l2 * layer.biases.multiply(layer.biases).sum(); + } + + return regularization_losss; + } + + }; } // 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 2418b71..c3685b3 100644 --- a/include/modules/neural_networks/neural_networks.h +++ b/include/modules/neural_networks/neural_networks.h @@ -19,3 +19,5 @@ #include "optimizers/Optimizer_SGD.h" #include "optimizers/Optimizer_Adagrad.h" +#include "optimizers/Optimizer_RMSprop.h" +#include "optimizers/Optimizer_Adam.h" \ No newline at end of file diff --git a/include/modules/neural_networks/optimizers/Optimizer_Adam.h b/include/modules/neural_networks/optimizers/Optimizer_Adam.h new file mode 100644 index 0000000..a72ee83 --- /dev/null +++ b/include/modules/neural_networks/optimizers/Optimizer_Adam.h @@ -0,0 +1,134 @@ +#pragma once + +#include "./core/omp_config.h" + +#include "./utils/vector.h" +#include "./utils/matrix.h" + +#include "./numerics/matmul.h" + +#include + + + +namespace neural_networks{ + + template + struct Optimizer_Adam{ + + T learning_rate = T{1}; + T current_learning_rate = learning_rate; + T decay = T{0}; + T epsilon = T{1e-7}; + T beta_1 = T{0.9}; + T beta_2 = T{0.999}; + uint64_t iterations = 0; + + utils::Matrix weight_momentums_corrected; + utils::Vector bias_momentums_corrected; + utils::Matrix weight_cache_corrected; + utils::Vector bias_cache_corrected; + + // Default Constructor + Optimizer_Adam() = default; + + // Constructor + explicit Optimizer_Adam(const T lr, const T lr_decay, const T epsilons, const T beta1, const T beta2): + learning_rate(lr), + current_learning_rate{lr}, + decay(lr_decay), + epsilon(epsilons), + beta_1(beta1), + beta_2(beta2) {} + + void pre_update_params(){ + if(decay){ + current_learning_rate = learning_rate * (T{1}/(T{1}+(decay*iterations))); + //std::cout << current_learning_rate << std::endl; + } + } + + template + void update_params(Layer& layer){ + + // if layer does not contain cache arrays, create them filled with zeros. + if ((layer.weight_cache.rows() != layer.weights.rows()) || (layer.weight_cache.cols() != layer.weights.cols())){ + layer.weight_momentums.resize(layer.weights.rows(), layer.weights.cols(), T{0}); + layer.weight_cache.resize(layer.weights.rows(), layer.weights.cols(), T{0}); + } + if (layer.bias_cache.size() != layer.biases.size()){ + layer.bias_momentums.resize(layer.biases.size(), T{0}); + layer.bias_cache.resize(layer.biases.size(), T{0}); + } + + // Update momentum with current gradients + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + layer.weight_momentums(i,j) = (beta_1 * layer.weight_momentums(i,j)) + ((T{1} - beta_1) * layer.dweights(i,j)); + } + } + + for (uint64_t i = 0; i < layer.biases.size(); ++i){ + layer.bias_momentums[i] = (beta_1 * layer.bias_momentums[i]) + ((T{1} - beta_1) * layer.dbiases[i]); + } + + + // Get corrected momentum + // interation is 0 at first pass + // and we need to start with 1 here + weight_momentums_corrected.resize(layer.weights.rows(),layer.weights.cols()); // can be optimized out later + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + weight_momentums_corrected(i,j) = layer.weight_momentums(i,j) / (T{1} - std::pow(beta_1, iterations+1)); + } + } + bias_momentums_corrected.resize(layer.biases.size()); // can be optimized out later + for (uint64_t i = 0; i < layer.biases.size(); ++i){ + bias_momentums_corrected[i] = layer.bias_momentums[i] / (T{1} - std::pow(beta_1, iterations+1)); + } + + + // Update cache with squared current gradients + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + layer.weight_cache(i,j) = (beta_2*layer.weight_cache(i,j)) + ((T{1}-beta_2) * (layer.dweights(i,j)*layer.dweights(i,j))); + } + } + + for (uint64_t i = 0; i < layer.biases.size(); ++i){ // can maybe be included when updating weights (saves time) + layer.bias_cache[i] = (beta_2*layer.bias_cache[i]) + ((T{1}-beta_2) * (layer.dbiases[i]*layer.dbiases[i])); + } + + // Get corrected cache + // interation is 0 at first pass + // and we need to start with 1 here + weight_cache_corrected.resize(layer.weights.rows(),layer.weights.cols()); // can be optimized out later + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + weight_cache_corrected(i,j) = layer.weight_cache(i,j) / (T{1} - std::pow(beta_2, iterations+1)); + } + } + bias_cache_corrected.resize(layer.biases.size()); // can be optimized out later + for (uint64_t i = 0; i < layer.biases.size(); ++i){ + bias_cache_corrected[i] = layer.bias_cache[i] / (T{1} - std::pow(beta_2, iterations+1)); + } + + + // Vanilla SGD parameter update + normalization with squared rooted cache + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + layer.weights(i,j) -= (current_learning_rate*weight_momentums_corrected(i,j)) / (std::sqrt(weight_cache_corrected(i,j)) + epsilon); + } + } + for (uint64_t i = 0; i < layer.biases.size(); ++i){ + layer.biases[i] -= (current_learning_rate*bias_momentums_corrected[i]) / (std::sqrt(bias_cache_corrected[i]) + epsilon); + } + } + + void post_update_params(){ + iterations++; + } + + }; + +} // end namespace neural_networks \ No newline at end of file diff --git a/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h b/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h new file mode 100644 index 0000000..5a816cc --- /dev/null +++ b/include/modules/neural_networks/optimizers/Optimizer_RMSprop.h @@ -0,0 +1,81 @@ +#pragma once + +#include "./core/omp_config.h" + +#include "./utils/vector.h" +#include "./utils/matrix.h" + +#include "./numerics/matmul.h" + +#include + + + + +namespace neural_networks{ + + template + struct Optimizer_RMSprop{ + + T learning_rate = T{1}; + T current_learning_rate = learning_rate; + T decay = T{0}; + T epsilon = T{1e-7}; + T rho = T{0.9}; + uint64_t iterations = 0; + + // Default Constructor + Optimizer_RMSprop() = default; + + // Constructor + explicit Optimizer_RMSprop(const T lr, const T lr_decay, const T epsilons, const T rhos): learning_rate(lr), current_learning_rate{lr}, decay(lr_decay), epsilon(epsilons), rho(rhos) {} + + void pre_update_params(){ + if(decay){ + current_learning_rate = learning_rate * (T{1}/(T{1}+(decay*iterations))); + //std::cout << current_learning_rate << std::endl; + } + } + + template + void update_params(Layer& layer){ + + + + // if layer does not contain cache arrays, create them filled with zeros. + if ((layer.weight_cache.rows() != layer.weights.rows()) || (layer.weight_cache.cols() != layer.weights.cols())){ + layer.weight_cache.resize(layer.weights.rows(), layer.weights.cols(), T{0}); + } + if (layer.bias_cache.size() != layer.biases.size()){ + layer.bias_cache.resize(layer.biases.size(), T{0}); + } + + // Update cache with squared current gradients + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + layer.weight_cache(i,j) = (rho*layer.weight_cache(i,j)) + ((T{1}-rho) * (layer.dweights(i,j)*layer.dweights(i,j))); + } + } + + for (uint64_t i = 0; i < layer.biases.size(); ++i){ // can maybe be included when updating weights (saves time) + layer.bias_cache[i] = (rho*layer.bias_cache[i]) + ((T{1}-rho) * (layer.dbiases[i]*layer.dbiases[i])); + } + + // Vanilla SGD parameter update + normalization with squared rooted cache + for (uint64_t i = 0; i < layer.weights.rows(); ++i){ + for (uint64_t j = 0; j < layer.weights.cols(); ++j){ + layer.weights(i,j) -= (current_learning_rate*layer.dweights(i,j)) / (std::sqrt(layer.weight_cache(i,j)) + epsilon); + } + } + for (uint64_t i = 0; i < layer.biases.size(); ++i){ + layer.biases[i] -= (current_learning_rate*layer.dbiases[i]) / (std::sqrt(layer.bias_cache[i]) + epsilon); + } + } + + void post_update_params(){ + iterations++; + } + + }; + +} // end namespace neural_networks \ No newline at end of file diff --git a/include/numerics/matabs.h b/include/numerics/matabs.h new file mode 100644 index 0000000..b9b73b5 --- /dev/null +++ b/include/numerics/matabs.h @@ -0,0 +1,29 @@ +#pragma once + +#include "./numerics/abs.h" +#include "./utils/matrix.h" + +namespace numerics{ + + template + void inplace_matabs(utils::Matrix& A){ + + for (uint64_t i = 0; i < A.rows(); ++i){ + for (uint64_t j = 0; j < A.cols(); ++j){ + A(i,j) = numerics::abs(A(i,j)); + } + } + } + + + template + utils::Matrix matabs(const utils::Matrix& A){ + utils::Matrix B = A; + inplace_matabs(B); + return B; + } + + + +} // namespace numerics + diff --git a/include/numerics/matmean.h b/include/numerics/matmean.h index ccceccc..4a98152 100644 --- a/include/numerics/matmean.h +++ b/include/numerics/matmean.h @@ -1,5 +1,4 @@ -#ifndef _mean_n_ -#define _mean_n_ +#pragma once #include "./utils/vector.h" #include "./utils/matrix.h" @@ -8,7 +7,7 @@ namespace numerics{ template - T matmean(utils::Matrix& A) { + T matmean(const utils::Matrix& A) { T mean(T{0}); @@ -27,7 +26,7 @@ namespace numerics{ template - void inplace_matmean_row(utils::Matrix& A, utils::Vector& b) { + void inplace_matmean_row(const utils::Matrix& A, utils::Vector& b) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); @@ -40,12 +39,12 @@ namespace numerics{ for (uint64_t i = 0; i < rows; ++i){ b[j] += A(i, j); } - b[j] =/ static_cast(rows); + b[j] /= static_cast(rows); } } template - void inplace_matmean_cols(utils::Matrix& A) { + void inplace_matmean_cols(const utils::Matrix& A, utils::Vector& b) { const uint64_t rows = A.rows(); const uint64_t cols = A.cols(); @@ -58,15 +57,15 @@ namespace numerics{ for (uint64_t j = 0; j < cols; ++j){ b[i] += A(i, j); } - b[j] =/ static_cast(cols); + b[i] /= static_cast(cols); } } template - utils::Vector matmean_row(utils::Matrix& A) { + utils::Vector matmean_row(const utils::Matrix& A) { - utils:Vector b(A.rows(), T{0}); + utils::Vector b(A.rows(), T{0}); inplace_matmean_row(A, b); @@ -74,9 +73,9 @@ namespace numerics{ } template - utils::Vector matmean_col(utils::Matrix& A) { + utils::Vector matmean_col(const utils::Matrix& A) { - utils:Vector b(A.cols(), T{0}); + utils::Vector b(A.cols(), T{0}); inplace_matmean_cols(A, b); @@ -84,5 +83,3 @@ namespace numerics{ } } // namespace numerics - -#endif // _mean_n_ \ No newline at end of file diff --git a/include/numerics/matsum.h b/include/numerics/matsum.h index 51774ff..1dd1f12 100644 --- a/include/numerics/matsum.h +++ b/include/numerics/matsum.h @@ -7,6 +7,20 @@ namespace numerics{ + template + T matsum_coeff(const utils::Matrix& A) { + + T b; + + for (uint64_t i = 0; i < A.cols(); ++i){ + for (uint64_t j = 0; j < A.rows(); ++j){ + b += A(i, j); + } + } + return b; + } + + template utils::Vector matsum(const utils::Matrix& A, std::string method) { diff --git a/include/numerics/numerics.h b/include/numerics/numerics.h index c3135e4..9ed8c07 100644 --- a/include/numerics/numerics.h +++ b/include/numerics/numerics.h @@ -16,6 +16,7 @@ #include "./numerics/matmul.h" #include "./numerics/matscalar.h" #include "./numerics/matmax.h" +#include "./numerics/matabs.h" #include "./numerics/matdiv.h" #include "./numerics/matvec.h" #include "./numerics/matadd.h" diff --git a/include/utils/vector.h b/include/utils/vector.h index 03c03ce..5cca518 100644 --- a/include/utils/vector.h +++ b/include/utils/vector.h @@ -400,12 +400,29 @@ public: } return result; } + + //############################################ + //# VECTOR: Abs # + //############################################ + Vector abs()const{ + Vector result = *this; + const uint64_t n = v.size(); + for (uint64_t i = 0; i < n; ++i){ + if (v[i](std::sqrt(this->dot(*this))); } + //############################################ //# VECTOR: Normalize # //############################################