diff --git a/unit_tests/operator/Test_ConvImpl.cpp b/unit_tests/operator/Test_ConvImpl.cpp index 7b14546351e1eb61af1063a5b98aa16fcebdd029..6a49a7995e4827294466e10b1347e81a79478f6a 100644 --- a/unit_tests/operator/Test_ConvImpl.cpp +++ b/unit_tests/operator/Test_ConvImpl.cpp @@ -1986,39 +1986,17 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { auto input = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000}, - {1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000}}}})); + {{{{1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.}, + {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.}}}})); auto weights = std::make_shared<Tensor>( Array3D<float, outChannels, inChannels, kernelSize>( - {{{{0.100000, 0.100000, 0.100000, 0.100000}, - {0.100000, 0.100000, 0.100000, 0.100000}}, - {{0.100000, 0.100000, 0.100000, 0.100000}, - {0.100000, 0.100000, 0.100000, 0.100000}}, - {{0.100000, 0.100000, 0.100000, 0.100000}, - {0.100000, 0.100000, 0.100000, 0.100000}}} + {{{{0.1, 0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1, 0.1}}, + {{0.1, 0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1, 0.1}}, + {{0.1, 0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1, 0.1}}} })); @@ -2054,30 +2032,8 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { SECTION("Input Grad") { auto expectedInputGrad = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{0.3000, - 0.6000, - 0.9000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 0.9000, - 0.6000, - 0.3000}, - {0.3000, - 0.6000, - 0.9000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 1.2000, - 0.9000, - 0.6000, - 0.3000}}}})); + {{{{0.3, 0.6, 0.9, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 0.9, 0.6, 0.3}, + {0.3, 0.6, 0.9, 1.2, 1.2, 1.2, 1.2, 1.2, 1.2, 0.9, 0.6, 0.3}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -2128,9 +2084,9 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { {1., 1., 1., 1., 1., 1., 1., 1.}}}})); auto weights = std::make_shared<Tensor>( Array3D<float, outChannels, inChannels, kernelSize>( - {{{{0.1000, 0.1000}, - {0.1000, 0.1000}, - {0.1000, 0.1000}}}})); + {{{{0.1, 0.1}, + {0.1, 0.1}, + {0.1, 0.1}}}})); auto biases = std::make_shared<Tensor>( Array1D<float, outChannels>({0.060000})); @@ -2164,55 +2120,13 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { SECTION("Input Grad") { auto expectedInputGrad = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}}, - - {{0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000, - 0.0000, - 0.1000, - 0.1000}}}})); + {{{{0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}, + {0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}, + {0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}}, + + {{0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}, + {0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}, + {0.1, 0.1, 0.0, 0.1, 0.1, 0.0, 0.1, 0.1}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -2256,12 +2170,12 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { {1., 1., 1., 1., 1., 1., 1., 1.}}}})); auto weights = std::make_shared<Tensor>( Array3D<float, outChannels, inChannels, kernelSize>( - {{{{0.1000, 0.1000}, - {0.1000, 0.1000}, - {0.1000, 0.1000}}}})); + {{{{0.1, 0.1}, + {0.1, 0.1}, + {0.1, 0.1}}}})); auto biases = std::make_shared<Tensor>( - Array1D<float, outChannels>({0.060000})); + Array1D<float, outChannels>({0.06})); auto op = setupTestConv<DIM>( batchSize, @@ -2292,55 +2206,13 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { SECTION("Input Grad") { auto expectedInputGrad = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}}, - - {{0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}, - {0.1000, - 0.1000, - 0.2000, - 0.2000, - 0.2000, - 0.2000, - 0.1000, - 0.1000}}}})); + {{{{0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}, + {0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}, + {0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}}, + + {{0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}, + {0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}, + {0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -2380,28 +2252,28 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.}}}})); auto weights = std::make_shared<Tensor>( Array3D<float, outChannels, inChannels, kernelSize>( - {{{{0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}}, - - {{0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}}, - - {{0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}}, - - {{0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}, - {0.1000, 0.1000, 0.1000}}}})); + {{{{0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}}, + + {{0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}}, + + {{0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}}, + + {{0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}, + {0.1, 0.1, 0.1}}}})); auto biases = std::make_shared<Tensor>(Array1D<float, outChannels>( - {{0.0100, 0.0100, 0.0100, 0.0100}})); + {{0.01, 0.01, 0.01, 0.01}})); auto op = setupTestConv<DIM>( batchSize, @@ -2432,58 +2304,10 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { SECTION("Input Grad") { auto expectedInputGrad = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.0000, - 0.0000}, - {0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.0000, - 0.0000}, - {0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.0000, - 0.0000}, - {0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.4000, - 0.4000, - 0.0000, - 0.0000, - 0.4000, - 0.0000, - 0.0000}}}})); + {{{{0.4,0.,0.,0.4,0.4,0.,0.4,0.4,0.,0.,0.4,0.,0.}, + {0.4,0.,0.,0.4,0.4,0.,0.4,0.4,0.,0.,0.4,0.,0.}, + {0.4,0.,0.,0.4,0.4,0.,0.4,0.4,0.,0.,0.4,0.,0.}, + {0.4,0.,0.,0.4,0.4,0.,0.4,0.4,0.,0.,0.4,0.,0.}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -2543,9 +2367,9 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { {9., 10., 11., 12., 13., 14., 15., 16.}}}})); auto weights = std::make_shared<Tensor>( Array3D<float, outChannels, inChannels, kernelSize>( - {{{{0.1000, 0.2000, 0.3000}, {0.4000, 0.5000, 0.6000}}, + {{{{0.1, 0.2, 0.3}, {0.4, 0.5, 0.6}}, - {{0.7000, 0.8000, 0.9000}, {1.0000, 1.1000, 1.2000}}}})); + {{0.7, 0.8, 0.9}, {1.0, 1.1, 1.2}}}})); auto biases = std::make_shared<Tensor>( Array1D<float, outChannels>({{0.0100, 0.0200}})); @@ -2576,22 +2400,8 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { SECTION("Input Grad") { auto expectedInputGrad = std::make_shared<Tensor>( Array3D<float, batchSize, inChannels, inDataSize>( - {{{{2.2000, - 0.0000, - 5.6000, - 0.0000, - 6.6000, - 0.0000, - 4.2000, - 0.0000}, - {3.4000, - 0.0000, - 8.6000, - 0.0000, - 9.6000, - 0.0000, - 6.0000, - 0.0000}}}})); + {{{{2.2,0.,5.6,0.,6.6,0.,4.2,0.}, + {3.4,0.,8.6,0.,9.6,0.,6.,0.}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -3140,18 +2950,14 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { inChannels, inDataSize[0], inDataSize[1], - inDataSize[2]>({{{{{{0.100000, 0.200000}, - {0.300000, 0.400000}}, - - {{0.500000, 0.600000}, - {0.700000, 0.800000}}}, + inDataSize[2]>( + {{{{{{0.100000, 0.200000}, {0.300000, 0.400000}}, + {{0.500000, 0.600000}, {0.700000, 0.800000}}}, - {{{0.900000, 1.000000}, - {1.100000, 1.200000}}, + {{{0.900000, 1.000000}, {1.100000, 1.200000}}, - {{1.300000, 1.400000}, - {1.500000, 1.600000}}}}}})); + {{1.300000, 1.400000}, {1.500000, 1.600000}}}}}})); CHECK(approxEq<float, float>(*op->getInput(0)->grad(), *expectedInputGrad)); } @@ -3162,18 +2968,15 @@ TEST_CASE("[cpu/operator] Conv(backward)", "[Conv][CPU]") { inChannels, kernelSize[0], kernelSize[1], - kernelSize[2]>({{{{{{ 1.000000, 2.000000}, - { 3.000000, 4.000000}}, - - {{ 5.000000, 6.000000}, - { 7.000000, 8.000000}}}, + kernelSize[2]>( + {{{{{{1.000000, 2.000000}, {3.000000, 4.000000}}, + {{5.000000, 6.000000}, {7.000000, 8.000000}}}, - {{{ 9.000000, 10.000000}, - {11.000000, 12.000000}}, + {{{9.000000, 10.000000}, {11.000000, 12.000000}}, - {{13.000000, 14.000000}, - {15.000000, 16.000000}}}}}})); + {{13.000000, 14.000000}, + {15.000000, 16.000000}}}}}})); CHECK(approxEq<float, float>(*op->getInput(1)->grad(), *expectedWeightsGrad)); }