1387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#
2387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# Copyright (C) 2017 The Android Open Source Project
3387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#
4387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# Licensed under the Apache License, Version 2.0 (the "License");
5387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# you may not use this file except in compliance with the License.
6387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# You may obtain a copy of the License at
7387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#
8387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#      http://www.apache.org/licenses/LICENSE-2.0
9387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#
10387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# Unless required by applicable law or agreed to in writing, software
11387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# distributed under the License is distributed on an "AS IS" BASIS,
12387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# See the License for the specific language governing permissions and
14387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# limitations under the License.
15387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen#
16387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen
17387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# model
18387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenmodel = Model()
19387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen
20e68d924a02511200be6186c947359dee7bb58f23Jean-Luc Brouilletrow1 = 52
21e68d924a02511200be6186c947359dee7bb58f23Jean-Luc Brouilletrow2 = 40
22e68d924a02511200be6186c947359dee7bb58f23Jean-Luc Brouilletcol = 300
23387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenoutput_row = row1 + row2
24387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen
25387383f0d7e7b519a4680d5504793d142fce27a9Dong Cheninput1 = Input("input1", "TENSOR_QUANT8_ASYMM", "{%d, %d}, 0.5f, 0" % (row1, col))
26387383f0d7e7b519a4680d5504793d142fce27a9Dong Cheninput2 = Input("input2", "TENSOR_QUANT8_ASYMM", "{%d, %d}, 0.5f, 0" % (row2, col))
27387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenaxis0 = Int32Scalar("axis0", 0)
28387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenoutput = Output("output", "TENSOR_QUANT8_ASYMM", "{%d, %d}, 0.5f, 0" % (output_row, col))
2993e086fbc0f1577eabdffd0d3420589f2788bd95Miao Wangmodel = model.Operation("CONCATENATION", input1, input2, axis0).To(output)
30387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen
31387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# Example 1.
32387383f0d7e7b519a4680d5504793d142fce27a9Dong Cheninput1_values = [x % 256 for x in range(row1 * col)]
33387383f0d7e7b519a4680d5504793d142fce27a9Dong Cheninput2_values = (lambda s1 = row1 * col, s2 = row2 * col:
34387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen                 [(x + s1) % 256 for x in range(s2)])()
35387383f0d7e7b519a4680d5504793d142fce27a9Dong Cheninput0 = {input1: input1_values,
36387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen          input2: input2_values}
37387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenoutput_values = [x % 256 for x in range(output_row * col)]
38387383f0d7e7b519a4680d5504793d142fce27a9Dong Chenoutput0 = {output: output_values}
39387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen
40387383f0d7e7b519a4680d5504793d142fce27a9Dong Chen# Instantiate an example
41387383f0d7e7b519a4680d5504793d142fce27a9Dong ChenExample((input0, output0))
42