ANEURALNETWORKS_GATHER_EX = 50001,
ANEURALNETWORKS_TOPK_V2_EX = 50002,
ANEURALNETWORKS_TENSORFLOW_MAX_EX = 50003,
- ANEURALNETWORKS_DIV_EX = 50004,
- ANEURALNETWORKS_STRIDED_SLICE_EX = 50005,
- ANEURALNETWORKS_SUB_EX = 50006,
+ ANEURALNETWORKS_SPLIT_EX = 50004,
} OperationCodeEx; // extends OperationCode
typedef OperationCodeEx ANeuralNetworksOperationTypeEx;
add_add_params();
break;
case tflite::BuiltinOperator_STRIDED_SLICE:
- add_strided_slice_ex_params(node.builtin_data);
- // FIXME: This call is ugly. please fix this
- // Use ANN_addOperationEx for STRIDED_SLICE
- CHECK_NN(ANeuralNetworksModel_addOperationEx(
- nn_model, ANEURALNETWORKS_STRIDED_SLICE_EX,
- static_cast<uint32_t>(augmented_inputs.size()),
- augmented_inputs.data(), static_cast<uint32_t>(node.outputs->size),
- reinterpret_cast<uint32_t*>(node.outputs->data)));
- continue;
+ add_strided_slice_params(node.builtin_data);
+ nn_op_type = ANEURALNETWORKS_STRIDED_SLICE;
+ break;
case tflite::BuiltinOperator_CAST:
CHECK_NN(ANeuralNetworksModel_addOperationEx(
nn_model, ANEURALNETWORKS_CAST_EX,
add_scalar_int32(width);
};
- auto add_strided_slice_ex_params = [&add_scalar_int32](void* data) {
+ auto add_strided_slice_params = [&add_scalar_int32](void* data) {
auto builtin = reinterpret_cast<TfLiteStridedSliceParams*>(data);
add_scalar_int32(builtin->begin_mask);
add_scalar_int32(builtin->end_mask);
break;
}
- case ANEURALNETWORKS_STRIDED_SLICE_EX:
- {
- using internal::tflite::op::StridedSlice::Param;
- using internal::tflite::op::StridedSlice::Node;
-
- // Add 'operations'
- auto &operations = model->deref().operations();
-
- operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
-
- break;
- }
case ANEURALNETWORKS_GATHER_EX:
{
using internal::tflite::op::Gather::Param;
break;
}
- case ANEURALNETWORKS_SUB_EX:
- {
- assert(inputCount == 3);
- assert(outputCount == 1);
-
- using internal::tflite::op::Sub::Param;
- using internal::tflite::op::Sub::Node;
-
- // Add 'operations'
- auto &operations = model->deref().operations();
-
- operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
-
- break;
- }
- case ANEURALNETWORKS_DIV_EX:
- {
- assert(inputCount == 3);
- assert(outputCount == 1);
-
- using internal::tflite::op::Div::Param;
- using internal::tflite::op::Div::Node;
-
- // Add 'operations'
- auto &operations = model->deref().operations();
-
- operations.emplace_back<Node>(Param{inputCount, inputs, outputCount, outputs});
-
- break;
- }
default:
throw std::runtime_error{"Not supported operation"};
}
gather_2D_uint8::examples);
}
-namespace strided_slice_ex_float_10 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_10 test
-#include "generated/examples/strided_slice_ex_float_10.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_10.model.cpp"
-} // namespace strided_slice_ex_float_10
-TEST_F(GeneratedTests, strided_slice_ex_float_10) {
- execute(strided_slice_ex_float_10::CreateModel,
- strided_slice_ex_float_10::is_ignored,
- strided_slice_ex_float_10::examples);
-}
-
-namespace strided_slice_ex_float_1 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_1 test
-#include "generated/examples/strided_slice_ex_float_1.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_1.model.cpp"
-} // namespace strided_slice_ex_float_1
-TEST_F(GeneratedTests, strided_slice_ex_float_1) {
- execute(strided_slice_ex_float_1::CreateModel,
- strided_slice_ex_float_1::is_ignored,
- strided_slice_ex_float_1::examples);
-}
-
-namespace strided_slice_ex_float_2 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_2 test
-#include "generated/examples/strided_slice_ex_float_2.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_2.model.cpp"
-} // namespace strided_slice_ex_float_2
-TEST_F(GeneratedTests, strided_slice_ex_float_2) {
- execute(strided_slice_ex_float_2::CreateModel,
- strided_slice_ex_float_2::is_ignored,
- strided_slice_ex_float_2::examples);
-}
-
-namespace strided_slice_ex_float_3 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_3 test
-#include "generated/examples/strided_slice_ex_float_3.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_3.model.cpp"
-} // namespace strided_slice_ex_float_3
-TEST_F(GeneratedTests, strided_slice_ex_float_3) {
- execute(strided_slice_ex_float_3::CreateModel,
- strided_slice_ex_float_3::is_ignored,
- strided_slice_ex_float_3::examples);
-}
-
-namespace strided_slice_ex_float_4 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_4 test
-#include "generated/examples/strided_slice_ex_float_4.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_4.model.cpp"
-} // namespace strided_slice_ex_float_4
-TEST_F(GeneratedTests, strided_slice_ex_float_4) {
- execute(strided_slice_ex_float_4::CreateModel,
- strided_slice_ex_float_4::is_ignored,
- strided_slice_ex_float_4::examples);
-}
-
-namespace strided_slice_ex_float_5 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_5 test
-#include "generated/examples/strided_slice_ex_float_5.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_5.model.cpp"
-} // namespace strided_slice_ex_float_5
-TEST_F(GeneratedTests, strided_slice_ex_float_5) {
- execute(strided_slice_ex_float_5::CreateModel,
- strided_slice_ex_float_5::is_ignored,
- strided_slice_ex_float_5::examples);
-}
-
-namespace strided_slice_ex_float_6 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_6 test
-#include "generated/examples/strided_slice_ex_float_6.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_6.model.cpp"
-} // namespace strided_slice_ex_float_6
-TEST_F(GeneratedTests, strided_slice_ex_float_6) {
- execute(strided_slice_ex_float_6::CreateModel,
- strided_slice_ex_float_6::is_ignored,
- strided_slice_ex_float_6::examples);
-}
-
-namespace strided_slice_ex_float_7 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_7 test
-#include "generated/examples/strided_slice_ex_float_7.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_7.model.cpp"
-} // namespace strided_slice_ex_float_7
-TEST_F(GeneratedTests, strided_slice_ex_float_7) {
- execute(strided_slice_ex_float_7::CreateModel,
- strided_slice_ex_float_7::is_ignored,
- strided_slice_ex_float_7::examples);
-}
-
-namespace strided_slice_ex_float_8 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_8 test
-#include "generated/examples/strided_slice_ex_float_8.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_8.model.cpp"
-} // namespace strided_slice_ex_float_8
-TEST_F(GeneratedTests, strided_slice_ex_float_8) {
- execute(strided_slice_ex_float_8::CreateModel,
- strided_slice_ex_float_8::is_ignored,
- strided_slice_ex_float_8::examples);
-}
-
-namespace strided_slice_ex_float_9 {
-std::vector<MixedTypedExample> examples = {
-// Generated strided_slice_ex_float_9 test
-#include "generated/examples/strided_slice_ex_float_9.example.cpp"
-};
-// Generated model constructor
-#include "generated/models/strided_slice_ex_float_9.model.cpp"
-} // namespace strided_slice_ex_float_9
-TEST_F(GeneratedTests, strided_slice_ex_float_9) {
- execute(strided_slice_ex_float_9::CreateModel,
- strided_slice_ex_float_9::is_ignored,
- strided_slice_ex_float_9::examples);
-}
-
namespace tensorflowmax_ex_2D_float {
std::vector<MixedTypedExample> examples = {
// Generated tensorflowmax_ex_2D_float test
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{2}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [2, 3]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
-begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, 0])
-ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 2])
-strides = Parameter("strides", "TENSOR_INT32", "{2}", [1, 1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 2)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{1, 3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4, 5, 6]}
-
-output0 = {output: # output 0
- [4, 5, 6]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [-3])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{2}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [2, 3]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [-5])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [1, 2, 3]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [-2])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{1}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [2]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 1)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [1, 2, 3]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{4}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [1])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [3])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 1)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4]}
-
-output0 = {output: # output 0
- [2, 3, 4]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{3}")
-begins = Parameter("begins", "TENSOR_INT32", "{1}", [-1])
-ends = Parameter("ends", "TENSOR_INT32", "{1}", [-4])
-strides = Parameter("strides", "TENSOR_INT32", "{1}", [-1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3]}
-
-output0 = {output: # output 0
- [3, 2, 1]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
-begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, -1])
-ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, -4])
-strides = Parameter("strides", "TENSOR_INT32", "{2}", [2, -1])
-beginMask = Int32Scalar("beginMask", 0)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{1, 3}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4, 5, 6]}
-
-output0 = {output: # output 0
- [6, 5, 4]}
-
-# Instantiate an example
-Example((input0, output0))
+++ /dev/null
-model = Model()
-i1 = Input("input", "TENSOR_FLOAT32", "{2, 3}")
-begins = Parameter("begins", "TENSOR_INT32", "{2}", [1, 0])
-ends = Parameter("ends", "TENSOR_INT32", "{2}", [2, 2])
-strides = Parameter("strides", "TENSOR_INT32", "{2}", [1, 1])
-beginMask = Int32Scalar("beginMask", 1)
-endMask = Int32Scalar("endMask", 0)
-shrinkAxisMask = Int32Scalar("shrinkAxisMask", 0)
-
-output = Output("output", "TENSOR_FLOAT32", "{2, 2}")
-
-model = model.Operation("STRIDED_SLICE_EX", i1, begins, ends, strides, beginMask, endMask, shrinkAxisMask).To(output)
-
-# Example 1. Input in operand 0,
-input0 = {i1: # input 0
- [1, 2, 3, 4, 5, 6]}
-
-output0 = {output: # output 0
- [1, 2, 4, 5]}
-
-# Instantiate an example
-Example((input0, output0))