diff --git a/src/plugins/intel_gpu/include/intel_gpu/primitives/broadcast.hpp b/src/plugins/intel_gpu/include/intel_gpu/primitives/broadcast.hpp index 70547f70705..be6a4d8d6b7 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/primitives/broadcast.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/primitives/broadcast.hpp @@ -107,7 +107,7 @@ struct broadcast : public primitive_base { target_shape(target_shape), axes_mapping(axes_mapping), broadcast_mode(broadcast_spec), - broadcast_sizes({}), + broadcast_sizes(target_shape.empty() ? tensor(1) : tensor(0)), broadcast_axes({}) {} /// @brief Constructs broadcast primitive / layer with dynamic target_shape. diff --git a/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp index 0ea04c906b6..e8430153322 100644 --- a/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp +++ b/src/tests/functional/plugin/gpu/shared_tests_instances/single_layer_tests/broadcast.cpp @@ -25,6 +25,22 @@ const std::vector inputTPrecisions = { InferenceEngine::Precision::BOOL }; +// NUMPY MODE ////////////////////////////////////////// +// 0D +std::vector> targetShapesNumpy0D = { + {}, +}; + +INSTANTIATE_TEST_CASE_P(smoke_TestNumpyBroadcast0D, + BroadcastLayerTest, + ::testing::Combine(::testing::ValuesIn(targetShapesNumpy0D), + ::testing::Values(ngraph::AxisSet{}), // not used in numpy mode + ::testing::Values(ngraph::op::BroadcastType::NUMPY), + ::testing::Values(std::vector{}), + ::testing::ValuesIn(inputPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_GPU)), + BroadcastLayerTest::getTestCaseName); + // NUMPY MODE ////////////////////////////////////////// // 1D std::vector> targetShapesNumpy1D = {