ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Pooling.cpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
3 * Copyright (C) 2017 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#include "Pooling.h"
19#include "Spatial.h"
20
21#include "Assert.h"
22
23bool genericPoolingPrepare(const Shape &input, int32_t padding_left, int32_t padding_right,
24 int32_t padding_top, int32_t padding_bottom, int32_t stride_width,
25 int32_t stride_height, int32_t filter_width, int32_t filter_height,
26 Shape *output)
27{
28 ASSERT(getNumberOfDimensions(input) == 4);
29
30 uint32_t batches = getSizeOfDimension(input, 0);
31 uint32_t width = getSizeOfDimension(input, 2);
32 uint32_t height = getSizeOfDimension(input, 1);
33 uint32_t channels_out = getSizeOfDimension(input, 3);
34
35 uint32_t outWidth =
36 computeOutSize(width, filter_width, stride_width, padding_left, padding_right);
37 uint32_t outHeight =
38 computeOutSize(height, filter_height, stride_height, padding_top, padding_bottom);
39
40 output->type = input.type;
41 output->dimensions = {batches, outHeight, outWidth, channels_out};
42 return true;
43}
uint32_t computeOutSize(uint32_t imageSize, uint32_t filterSize, uint32_t stride, uint32_t paddingHead, uint32_t paddingTail)
Definition Spatial.h:23
#define ASSERT(v)
Definition Assert.h:24
bool genericPoolingPrepare(const Shape &input, int32_t padding_left, int32_t padding_right, int32_t padding_top, int32_t padding_bottom, int32_t stride_width, int32_t stride_height, int32_t filter_width, int32_t filter_height, Shape *output)
Definition Pooling.cpp:23
uint32_t getSizeOfDimension(const Shape &shape, uint32_t dimensionIdx)
Definition Shape.cpp:60
uint32_t getNumberOfDimensions(const Shape &shape)
Definition Shape.cpp:58
Definition Shape.h:28