diff --git a/Makefile b/Makefile index 4cfaf0d..087652a 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -CC=g++ -std=c++17 -g -Ofast -Wall -Wextra -Iincludes -D_GLIBCXX_DEBUG -fsanitize=address -# CC=g++ -std=c++17 -Ofast -Wall -Wextra -Iincludes -DNDEBUG +# CC=clang++ -std=c++20 -g -Ofast -Wall -Wextra -Iincludes -D_GLIBCXX_DEBUG -fsanitize=address +CC=clang++ -std=c++20 -Ofast -Wall -Wextra -Wpedantic -Iincludes -DNDEBUG DATASET=$(addprefix dataset/,t10k-labels-idx1-ubyte train-images-idx3-ubyte train-labels-idx1-ubyte t10k-images-idx3-ubyte) BINARY=$(addprefix bin/,k-NN dnn tnn) diff --git a/includes/nn.h b/includes/nn.h index c0a4b5f..a3f4f12 100644 --- a/includes/nn.h +++ b/includes/nn.h @@ -18,7 +18,7 @@ struct LayerLinear : Layer { float *W, *A; LayerLinear(size_t I, size_t O); - ~LayerLinear(); + ~LayerLinear() override; LayerLinear(std::ifstream&); virtual void save(std::ofstream&) override; @@ -53,7 +53,7 @@ struct LayerConvolutional : Layer { float *W, *A; LayerConvolutional(size_t, size_t, std::array, std::array); - ~LayerConvolutional(); + ~LayerConvolutional() override; LayerConvolutional(std::ifstream&); virtual void save(std::ofstream&) override; diff --git a/src/dataset.cpp b/src/dataset.cpp index 5e76987..64b71df 100644 --- a/src/dataset.cpp +++ b/src/dataset.cpp @@ -2,6 +2,8 @@ #include #include #include + +#include using namespace std; vector train_labels; diff --git a/src/nn.cpp b/src/nn.cpp index 1965cf0..4e945d6 100644 --- a/src/nn.cpp +++ b/src/nn.cpp @@ -3,16 +3,15 @@ #include #include -// #include -#include "../includes/nn.h" +#include using namespace std; Layer* Layer::fromFile(int idx, ifstream& fin) { switch (idx) { - case 0: puts("LayerLinear"); return new LayerLinear(fin); - case 1: puts("LayerSigmoid"); return new LayerSigmoid; - case 2: puts("LayerAveragePooling"); return new LayerAveragePooling(fin); - case 3: puts("LayerConvolutional"); return new LayerConvolutional(fin); + case 0: return new LayerLinear(fin); + case 1: return new LayerSigmoid; + case 2: return new LayerAveragePooling(fin); + case 3: return new LayerConvolutional(fin); default: assert(false); return nullptr; } }