mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-07 17:15:29 +00:00
int8/uint8 support for Argmax for opset 1, 11, 12 (#10296)
This commit is contained in:
parent
712f4e403d
commit
e27f2dc932
5 changed files with 36 additions and 4 deletions
|
|
@ -26,8 +26,8 @@ Do not modify directly.*
|
|||
|Affine|*in* X:**T**<br> *out* Y:**T**|1+|**T** = tensor(float)|
|
||||
|And|*in* A:**T**<br> *in* B:**T**<br> *out* C:**T1**|7+|**T** = tensor(bool)<br/> **T1** = tensor(bool)|
|
||||
|ArgMax|*in* data:**T**<br> *out* reduced:**tensor(int64)**|13+|**T** = tensor(double), tensor(float), tensor(int32), tensor(int8), tensor(uint8)|
|
||||
|||[11, 12]|**T** = tensor(double), tensor(float), tensor(int32)|
|
||||
|||[1, 10]|**T** = tensor(float), tensor(int32)|
|
||||
|||[11, 12]|**T** = tensor(double), tensor(float), tensor(int32), tensor(int8), tensor(uint8)|
|
||||
|||[1, 10]|**T** = tensor(float), tensor(int32), tensor(int8), tensor(uint8)|
|
||||
|ArgMin|*in* data:**T**<br> *out* reduced:**tensor(int64)**|13+|**T** = tensor(double), tensor(float), tensor(int32)|
|
||||
|||[11, 12]|**T** = tensor(double), tensor(float), tensor(int32)|
|
||||
|||[1, 10]|**T** = tensor(float), tensor(int32)|
|
||||
|
|
|
|||
|
|
@ -183,6 +183,8 @@ class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOn
|
|||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, double,
|
||||
ReduceSumSquare);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, float, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, int8_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, uint8_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, int32_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, float, ArgMin);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10, int32_t, ArgMin);
|
||||
|
|
@ -340,6 +342,8 @@ class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain,
|
|||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, uint8_t, DynamicQuantizeLinear);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, float, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, double, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, int8_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, uint8_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, int32_t, ArgMax);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, float, ArgMin);
|
||||
class ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12, double, ArgMin);
|
||||
|
|
@ -998,6 +1002,10 @@ Status RegisterOnnxOperatorKernels(KernelRegistry& kernel_registry) {
|
|||
double, ReduceSumSquare)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10,
|
||||
float, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10,
|
||||
int8_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10,
|
||||
uint8_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10,
|
||||
int32_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 1, 10,
|
||||
|
|
@ -1272,6 +1280,10 @@ Status RegisterOnnxOperatorKernels(KernelRegistry& kernel_registry) {
|
|||
float, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12,
|
||||
double, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12,
|
||||
int8_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12,
|
||||
uint8_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12,
|
||||
int32_t, ArgMax)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_VERSIONED_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 11, 12,
|
||||
|
|
|
|||
|
|
@ -199,8 +199,12 @@ REGISTER_UNARY_ELEMENTWISE_KERNEL(ReduceSumSquare, 13);
|
|||
REGISTER_UNARY_ELEMENTWISE_KERNEL_DOUBLE_ONLY(ReduceSumSquare, 13);
|
||||
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL(ArgMax, 1, 10);
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_INT8_ONLY(ArgMax, 1, 10)
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_UINT8_ONLY(ArgMax, 1, 10)
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL(ArgMax, 11, 12);
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_DOUBLE_ONLY(ArgMax, 11, 12)
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_INT8_ONLY(ArgMax, 11, 12)
|
||||
REGISTER_UNARY_ELEMENTWISE_VERSIONED_KERNEL_UINT8_ONLY(ArgMax, 11, 12)
|
||||
REGISTER_UNARY_ELEMENTWISE_KERNEL(ArgMax, 13);
|
||||
REGISTER_UNARY_ELEMENTWISE_KERNEL_DOUBLE_ONLY(ArgMax, 13);
|
||||
REGISTER_UNARY_ELEMENTWISE_KERNEL_INT8_ONLY(ArgMax, 13);
|
||||
|
|
|
|||
|
|
@ -2197,7 +2197,7 @@ TEST(ReductionOpTest, ArgMax_int32_neg_axis) {
|
|||
}
|
||||
|
||||
TEST(ReductionOpTest, ArgMax_int8) {
|
||||
OpTester test("ArgMax", 13);
|
||||
OpTester test("ArgMax");
|
||||
test.AddAttribute("axis", static_cast<int64_t>(1));
|
||||
test.AddAttribute("keepdims", static_cast<int64_t>(1));
|
||||
test.AddInput<int8_t>("data", {3, 2, 2},
|
||||
|
|
@ -2219,7 +2219,7 @@ TEST(ReductionOpTest, ArgMax_int8) {
|
|||
}
|
||||
|
||||
TEST(ReductionOpTest, ArgMax_uint8) {
|
||||
OpTester test("ArgMax", 13);
|
||||
OpTester test("ArgMax");
|
||||
test.AddAttribute("axis", static_cast<int64_t>(1));
|
||||
test.AddAttribute("keepdims", static_cast<int64_t>(1));
|
||||
test.AddInput<uint8_t>("data", {3, 2, 2},
|
||||
|
|
|
|||
|
|
@ -139,6 +139,10 @@
|
|||
"And ai.onnx CPUExecutionProvider",
|
||||
7931711152704979424
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
725939091209285112
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
1506815612154586624
|
||||
|
|
@ -163,6 +167,14 @@
|
|||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
3776111440658888968
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
4620340115180881848
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
10486830423259333928
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
12157492629288967928
|
||||
|
|
@ -179,6 +191,10 @@
|
|||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
14910778597193697496
|
||||
],
|
||||
[
|
||||
"ArgMax ai.onnx CPUExecutionProvider",
|
||||
18394842867298045376
|
||||
],
|
||||
[
|
||||
"ArgMin ai.onnx CPUExecutionProvider",
|
||||
3259714541817453752
|
||||
|
|
|
|||
Loading…
Reference in a new issue