1#
2# Copyright (C) 2018 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17model = Model()
18i1 = Input("op1", "TENSOR_FLOAT32", "{1, 2, 2, 3}") # input 0
19filter_width = Int32Scalar("filter_width", 2)
20filter_height = Int32Scalar("filter_height", 2)
21stride_width = Int32Scalar("stride_width", 1)
22stride_height = Int32Scalar("stride_height", 1)
23pad0 = Int32Scalar("pad0", 0)
24act = Int32Scalar("act", 0)
25i3 = Output("op3", "TENSOR_FLOAT32", "{1, 1, 1, 3}") # output 0
26model = model.Operation("L2_POOL_2D", i1, pad0, pad0, pad0, pad0,
27                        stride_width, stride_height,
28                        filter_width, filter_height,
29                        act).To(i3)
30model = model.RelaxedExecution(True)
31
32# Example 1. Input in operand 0,
33input0 = {i1: # input 0
34          [1.0,  2.0,  3.0,
35           4.0,  5.0,  6.0,
36           7.0,  8.0,  9.0,
37           10.0, 11.0, 12.0]}
38output0 = {i3: # output 0
39          [6.442049503326416, # sqrt(166/4)
40           7.3143692016601562, # sqrt(214/4)
41           8.2158384323120117]} # sqrt(270/4)
42# Instantiate an example
43Example((input0, output0))
44