1ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#
2ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# Copyright (C) 2018 The Android Open Source Project
3ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#
4ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# Licensed under the Apache License, Version 2.0 (the "License");
5ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# you may not use this file except in compliance with the License.
6ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# You may obtain a copy of the License at
7ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#
8ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#      http://www.apache.org/licenses/LICENSE-2.0
9ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#
10ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# Unless required by applicable law or agreed to in writing, software
11ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# distributed under the License is distributed on an "AS IS" BASIS,
12ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# See the License for the specific language governing permissions and
14ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# limitations under the License.
15ad1af843de16e98b215782f881985d08f0b03b98Michael Butler#
16ad1af843de16e98b215782f881985d08f0b03b98Michael Butler
17ad1af843de16e98b215782f881985d08f0b03b98Michael Butlermodel = Model()
18ad1af843de16e98b215782f881985d08f0b03b98Michael Butleri1 = Input("input", "TENSOR_FLOAT32", "{2, 3, 4, 5}")
19ad1af843de16e98b215782f881985d08f0b03b98Michael Butlerperms = Parameter("perms", "TENSOR_INT32", "{4}", [2, 0, 1, 3])
20ad1af843de16e98b215782f881985d08f0b03b98Michael Butleroutput = Output("output", "TENSOR_FLOAT32", "{4, 2, 3, 5}")
21ad1af843de16e98b215782f881985d08f0b03b98Michael Butler
22ad1af843de16e98b215782f881985d08f0b03b98Michael Butlermodel = model.Operation("TRANSPOSE", i1, perms).To(output)
23ad1af843de16e98b215782f881985d08f0b03b98Michael Butlermodel = model.RelaxedExecution(True)
24ad1af843de16e98b215782f881985d08f0b03b98Michael Butler
25ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# Example 1. Input in operand 0,
26ad1af843de16e98b215782f881985d08f0b03b98Michael Butlerinput0 = {i1: # input 0
27ad1af843de16e98b215782f881985d08f0b03b98Michael Butler          [0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,
28ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,
29ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,
30ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
31ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
32ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,
33ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,
34ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
35ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           96,  97,  98,  99,  100, 101, 102, 103, 104, 105, 106, 107,
36ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119]}
37ad1af843de16e98b215782f881985d08f0b03b98Michael Butler
38ad1af843de16e98b215782f881985d08f0b03b98Michael Butleroutput0 = {output: # output 0
39ad1af843de16e98b215782f881985d08f0b03b98Michael Butler          [0,  1,  2,  3,  4,  20, 21, 22, 23, 24, 40,  41,  42,  43,  44,
40ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           60, 61, 62, 63, 64, 80, 81, 82, 83, 84, 100, 101, 102, 103, 104,
41ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           5,  6,  7,  8,  9,  25, 26, 27, 28, 29, 45,  46,  47,  48,  49,
42ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           65, 66, 67, 68, 69, 85, 86, 87, 88, 89, 105, 106, 107, 108, 109,
43ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           10, 11, 12, 13, 14, 30, 31, 32, 33, 34, 50,  51,  52,  53,  54,
44ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           70, 71, 72, 73, 74, 90, 91, 92, 93, 94, 110, 111, 112, 113, 114,
45ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           15, 16, 17, 18, 19, 35, 36, 37, 38, 39, 55,  56,  57,  58,  59,
46ad1af843de16e98b215782f881985d08f0b03b98Michael Butler           75, 76, 77, 78, 79, 95, 96, 97, 98, 99, 115, 116, 117, 118, 119]}
47ad1af843de16e98b215782f881985d08f0b03b98Michael Butler
48ad1af843de16e98b215782f881985d08f0b03b98Michael Butler# Instantiate an example
49ad1af843de16e98b215782f881985d08f0b03b98Michael ButlerExample((input0, output0))
50