16b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#
26b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# Copyright (C) 2017 The Android Open Source Project
36b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#
46b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# Licensed under the Apache License, Version 2.0 (the "License");
56b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# you may not use this file except in compliance with the License.
66b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# You may obtain a copy of the License at
76b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#
86b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#      http://www.apache.org/licenses/LICENSE-2.0
96b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#
106b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# Unless required by applicable law or agreed to in writing, software
116b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# distributed under the License is distributed on an "AS IS" BASIS,
126b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# See the License for the specific language governing permissions and
146b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# limitations under the License.
156b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen#
166b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
176b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# model
186b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenmodel = Model()
196b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
206b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chend0 = 2
21e68d924a02511200be6186c947359dee7bb58f23Jean-Luc Brouilletd1 = 64
22e68d924a02511200be6186c947359dee7bb58f23Jean-Luc Brouilletd2 = 64
236b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chend3 = 2
246b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
256b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Cheni0 = Input("input", "TENSOR_QUANT8_ASYMM", "{%d, %d, %d, %d}, 1.f, 128" % (d0, d1, d2, d3))
266b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
276b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenoutput = Output("output", "TENSOR_QUANT8_ASYMM", "{%d, %d, %d, %d}, 1.f, 128" % (d0, d1, d2, d3))
286b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
296b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenmodel = model.Operation("RELU1", i0).To(output)
306b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
316b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# Example 1. Input in operand 0,
326b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenrng = d0 * d1 * d2 * d3
336b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Cheninput_values = (lambda r = rng: [x % 256 for x in range(r)])()
346b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Cheninput0 = {i0: input_values}
356b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenoutput_values = [127 if x < 127 else 129 if x > 129 else x for x in input_values]
366b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chenoutput0 = {output: output_values}
376b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen
386b884675d482221ebd6f73af5a127b9c02ab5fb1Dong Chen# Instantiate an example
396b884675d482221ebd6f73af5a127b9c02ab5fb1Dong ChenExample((input0, output0))
40