// Copyright (C) 2018 Intel Corporation // // SPDX-License-Identifier: Apache-2.0 // #pragma once #include #include #include "impl_register.hpp" #include #include #include #include #include namespace InferenceEngine { namespace ShapeInfer { /** *@brief Implementation of Shape inference for RegionYolo layer */ class RegionYoloShapeProp : public BuiltInShapeInferImpl { public: explicit RegionYoloShapeProp(const std::string& type) : BuiltInShapeInferImpl(type) {} void inferShapesImpl(const std::vector& inShapes, const std::map& params, const std::map& blobs, std::vector& outShapes) override { LayerParams lp{}; CNNLayer cnnLayer(lp); cnnLayer.params = params; cnnLayer.type = _type; validate(&cnnLayer, inShapes, params, blobs); SizeVector outShape; outShape.push_back(inShapes[0][0]); size_t mul(1); for (size_t i = 1; i < inShapes[0].size(); i++) { mul *= inShapes[0][i]; } outShape.push_back(mul); outShapes.push_back({outShape}); } }; } // namespace ShapeInfer } // namespace InferenceEngine