Add Int64 support to Neg

This commit is contained in:
Scott McKay 2020-01-30 20:06:46 +10:00 committed by Changming Sun
parent c23bd93ea5
commit 51595d6a4a
3 changed files with 12 additions and 0 deletions

View file

@ -64,6 +64,7 @@ class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain,
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, double, Neg);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int8_t, Neg);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int32_t, Neg);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int64_t, Neg);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, float, Floor);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, float, Ceil);
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, float, Reciprocal);
@ -503,6 +504,8 @@ Status RegisterOnnxOperatorKernels(KernelRegistry& kernel_registry) {
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int8_t, Neg)>,
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int32_t,
Neg)>,
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, int64_t,
Neg)>,
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, float,
Floor)>,
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kOnnxDomain, 6, float, Ceil)>,

View file

@ -81,6 +81,7 @@ REG_ELEMENTWISE_TYPED_KERNEL(Neg, 6, float, Neg);
REG_ELEMENTWISE_TYPED_KERNEL(Neg, 6, double, Neg);
REG_ELEMENTWISE_TYPED_KERNEL(Neg, 6, int8_t, Neg);
REG_ELEMENTWISE_TYPED_KERNEL(Neg, 6, int32_t, Neg);
REG_ELEMENTWISE_TYPED_KERNEL(Neg, 6, int64_t, Neg);
REG_ELEMENTWISE_TYPED_KERNEL(Floor, 6, float, Floor);

View file

@ -493,6 +493,14 @@ TEST(MathOpTest, Neg_int32) {
test.Run(OpTester::ExpectResult::kExpectSuccess, "", {kTensorrtExecutionProvider}); //TensorRT parser: Int32 not allowed as input to this layer
}
TEST(MathOpTest, Neg_int64) {
OpTester test("Neg");
std::vector<int64_t> dims{4};
test.AddInput<int64_t>("X", dims, {1, -2, 0, -10});
test.AddOutput<int64_t>("Y", dims, {-1, 2, 0, 10});
test.Run(OpTester::ExpectResult::kExpectSuccess, "", {kTensorrtExecutionProvider}); //TensorRT parser: Int64 not allowed as input to this layer
}
TEST(MathOpTest, Floor) {
OpTester test("Floor");
std::vector<int64_t> dims{2, 2};