1b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#
2b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Copyright (C) 2018 The Android Open Source Project
3b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#
4b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Licensed under the Apache License, Version 2.0 (the "License");
5b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# you may not use this file except in compliance with the License.
6b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# You may obtain a copy of the License at
7b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#
8b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#      http://www.apache.org/licenses/LICENSE-2.0
9b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#
10b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Unless required by applicable law or agreed to in writing, software
11b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# distributed under the License is distributed on an "AS IS" BASIS,
12b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# See the License for the specific language governing permissions and
14b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# limitations under the License.
15b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang#
16b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang
17b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangmodel = Model()
18b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangi1 = Input("op1", "TENSOR_FLOAT32", "{1, 1, 1, 3}")
19b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangi2 = Output("op2", "TENSOR_FLOAT32", "{1, 1, 1, 3}")
20b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang
21b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Color wize (channel-wise) normalization
22b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangmodel = model.Operation("L2_NORMALIZATION", i1).To(i2)
23b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangmodel = model.RelaxedExecution(True)
24b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang
25b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Example 1. Input in operand 0,
26b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wanginput0 = {i1: # input 0 - 1 color, 3 channels
27b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang          [0, 3, 4]}
28b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang
29b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wangoutput0 = {i2: # output 0
30b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang           [0, .6, .8]}
31b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang
32b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao Wang# Instantiate an example
33b74d2837ab1687c1a4f913aa5f90a9838efe0addMiao WangExample((input0, output0))
34