From d13bf07107be3685ae806df53fd61cbb6c7a40e0 Mon Sep 17 00:00:00 2001 From: Parichay Kapoor Date: Wed, 7 Jul 2021 10:48:00 +0900 Subject: [PATCH] [test/modelfile] Add loss layer unittests Add loss layer unittests for various loss configurations to be supported. These tests do not ensure correct graph formation. This will be done soon with models unittest. Signed-off-by: Parichay Kapoor --- test/unittest/unittest_nntrainer_modelfile.cpp | 16 ++++++++++++++++ test/unittest/unittest_nntrainer_models.cpp | 3 +++ 2 files changed, 19 insertions(+) diff --git a/test/unittest/unittest_nntrainer_modelfile.cpp b/test/unittest/unittest_nntrainer_modelfile.cpp index 55092e0e..07237d96 100644 --- a/test/unittest/unittest_nntrainer_modelfile.cpp +++ b/test/unittest/unittest_nntrainer_modelfile.cpp @@ -222,6 +222,14 @@ static nntrainer::IniSection dataset("DataSet", "BufferSize = 100 |" "TestData = testSet.dat |" "ValidData = valSet.dat"); +static nntrainer::IniSection loss_cross("loss", "Type = cross"); + +static nntrainer::IniSection loss_cross_softmax("loss", "Type = cross_softmax"); + +static nntrainer::IniSection loss_cross_sigmoid("loss", "Type = cross_sigmoid"); + +static nntrainer::IniSection loss_mse("loss", "Type = mse"); + static nntrainer::IniSection batch_normal("bn", "Type = batch_normalization |" "momentum = 1.2 |" @@ -338,6 +346,14 @@ INSTANTIATE_TEST_CASE_P( mkIniTc("no_bufferSize_p", {nw_base_cross, adam, dataset + "-BufferSize", input, out+"input_layers=inputlayer"}, SUCCESS), mkIniTc("buffer_size_smaller_than_batch_size_p", {nw_base_cross, adam, dataset + "BufferSize=26", input, out+"input_layers=inputlayer"}, SUCCESS), mkIniTc("buffer_size_smaller_than_batch_size2_p", {nw_base_cross, adam, input, out+"input_layers=inputlayer", dataset + "BufferSize=26"}, SUCCESS), + mkIniTc("loss_layer1_p", {nw_base, adam, input + "-Activation", out + "-Activation", loss_mse}, SUCCESS), + mkIniTc("loss_layer2_p", {nw_base, adam, input + "-Activation", out, loss_mse}, SUCCESS), + mkIniTc("loss_layer3_n", {nw_base, adam, input + "-Activation", out + "-Activation", loss_cross}, INITFAIL | COMPFAIL), + mkIniTc("loss_layer4_p", {nw_base, adam, input + "-Activation", out, loss_cross}, SUCCESS), + mkIniTc("loss_layer5_p", {nw_base, adam, input + "-Activation", out + "-Activation", loss_cross_sigmoid}, SUCCESS), + mkIniTc("loss_layer6_p", {nw_base, adam, input + "-Activation", out, loss_cross_sigmoid}, SUCCESS), + mkIniTc("loss_layer7_p", {nw_base, adam, input + "-Activation", out + "-Activation", loss_cross_softmax}, SUCCESS), + mkIniTc("loss_layer8_p", {nw_base, adam, input + "-Activation", out, loss_cross_softmax}, SUCCESS), /**< half negative: init fail cases (1 positive and 4 negative cases) */ mkIniTc("unknown_loss_n", {nw_base_cross + "loss = unknown", adam, input, out+"input_layers=inputlayer"}, COMPFAIL | INITFAIL), diff --git a/test/unittest/unittest_nntrainer_models.cpp b/test/unittest/unittest_nntrainer_models.cpp index 2d5ec0c5..f9ac67b1 100644 --- a/test/unittest/unittest_nntrainer_models.cpp +++ b/test/unittest/unittest_nntrainer_models.cpp @@ -656,6 +656,9 @@ using INI = nntrainer::IniWrapper; * Activation = softmax */ // clang-format off + +// TODO: update some models to use loss at the end as a layer +// and check for all cases INI fc_sigmoid_mse( "fc_sigmoid_mse", {nn_base + "loss=mse | batch_size = 3", -- 2.34.1