Home | History | Annotate | Download | only in V1_2
      1 #
      2 # Copyright (C) 2018 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 def test(name, input0, input1, output0, input0_data, input1_data, output_data):
     18   model = Model().Operation("MAXIMUM", input0, input1).To(output0)
     19 
     20   quant8 = DataTypeConverter().Identify({
     21       input0: ["TENSOR_QUANT8_ASYMM", 0.5, 127],
     22       input1: ["TENSOR_QUANT8_ASYMM", 1.0, 100],
     23       output0: ["TENSOR_QUANT8_ASYMM", 2.0, 80],
     24   })
     25 
     26   Example({
     27       input0: input0_data,
     28       input1: input1_data,
     29       output0: output_data,
     30   }, model=model, name=name).AddVariations("relaxed", "float16", "int32", quant8)
     31 
     32 
     33 test(
     34     name="simple",
     35     input0=Input("input0", "TENSOR_FLOAT32", "{3, 1, 2}"),
     36     input1=Input("input1", "TENSOR_FLOAT32", "{3, 1, 2}"),
     37     output0=Output("output0", "TENSOR_FLOAT32", "{3, 1, 2}"),
     38     input0_data=[1.0, 0.0, -1.0, 11.0, -2.0, -1.44],
     39     input1_data=[-1.0, 0.0, 1.0, 12.0, -3.0, -1.43],
     40     output_data=[1.0, 0.0, 1.0, 12.0, -2.0, -1.43],
     41 )
     42 
     43 test(
     44     name="broadcast",
     45     input0=Input("input0", "TENSOR_FLOAT32", "{3, 1, 2}"),
     46     input1=Input("input1", "TENSOR_FLOAT32", "{2}"),
     47     output0=Output("output0", "TENSOR_FLOAT32", "{3, 1, 2}"),
     48     input0_data=[1.0, 0.0, -1.0, -2.0, -1.44, 11.0],
     49     input1_data=[0.5, 2.0],
     50     output_data=[1.0, 2.0, 0.5, 2.0, 0.5, 11.0],
     51 )
     52 
     53 
     54 # Test overflow and underflow.
     55 input0 = Input("input0", "TENSOR_QUANT8_ASYMM", "{2}, 1.0f, 128")
     56 input1 = Input("input1", "TENSOR_QUANT8_ASYMM", "{2}, 1.0f, 128")
     57 output0 = Output("output0", "TENSOR_QUANT8_ASYMM", "{2}, 0.5f, 128")
     58 model = Model().Operation("MAXIMUM", input0, input1).To(output0)
     59 
     60 Example({
     61     input0: [60, 128],
     62     input1: [128, 200],
     63     output0: [128, 255],
     64 }, model=model, name="overflow")
     65