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