mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-07-12 17:57:38 +00:00
Float to float label encoder (#15400)
This commit is contained in:
parent
276c0a00e4
commit
e5617617fc
3 changed files with 42 additions and 1 deletions
|
|
@ -2338,7 +2338,7 @@ class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2,
|
|||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, string_int64, LabelEncoder);
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, int64_int64, LabelEncoder);
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, string_string, LabelEncoder);
|
||||
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, float_float, LabelEncoder);
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 3, float, TreeEnsembleClassifier);
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 3, double, TreeEnsembleClassifier);
|
||||
class ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 3, int64_t, TreeEnsembleClassifier);
|
||||
|
|
@ -2434,6 +2434,8 @@ Status RegisterOnnxMLOperatorKernels(KernelRegistry& kernel_registry) {
|
|||
LabelEncoder)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, string_string,
|
||||
LabelEncoder)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 2, float_float,
|
||||
LabelEncoder)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 3, float,
|
||||
TreeEnsembleClassifier)>,
|
||||
BuildKernelCreateInfo<ONNX_OPERATOR_TYPED_KERNEL_CLASS_NAME(kCpuExecutionProvider, kMLDomain, 3, double,
|
||||
|
|
|
|||
|
|
@ -151,6 +151,24 @@ void LabelEncoder_2<std::string, std::string>::InitializeSomeFields(const OpKern
|
|||
info.GetAttrOrDefault<std::string>("default_string", &_default_value, std::string("_Unused"));
|
||||
};
|
||||
|
||||
ONNX_CPU_OPERATOR_TYPED_ML_KERNEL(
|
||||
LabelEncoder,
|
||||
2,
|
||||
float_float,
|
||||
KernelDefBuilder().TypeConstraint("T1",
|
||||
std::vector<MLDataType>{DataTypeImpl::GetTensorType<float>()})
|
||||
.TypeConstraint("T2",
|
||||
std::vector<MLDataType>{DataTypeImpl::GetTensorType<float>()}),
|
||||
LabelEncoder_2<float, float>)
|
||||
|
||||
template <>
|
||||
void LabelEncoder_2<float, float>::InitializeSomeFields(const OpKernelInfo& info) {
|
||||
_key_field_name = "keys_floats";
|
||||
_value_field_name = "values_floats";
|
||||
info.GetAttrOrDefault<float>("default_float", &_default_value, -0.0f);
|
||||
};
|
||||
|
||||
|
||||
ONNX_CPU_OPERATOR_TYPED_ML_KERNEL(
|
||||
LabelEncoder,
|
||||
2,
|
||||
|
|
|
|||
|
|
@ -211,5 +211,26 @@ TEST(LabelEncoder, StringToStringOpset2) {
|
|||
test.Run();
|
||||
}
|
||||
|
||||
TEST(LabelEncoder, FloatToFloatOpset2) {
|
||||
std::vector<std::int64_t> dims{1, 4};
|
||||
|
||||
std::vector<float> input{-1.0f, 0.0f, 3.1427f, 7.25f};
|
||||
std::vector<float> output{1.0f, 0.0f, 2.718f, NAN};
|
||||
|
||||
OpTester test("LabelEncoder", 2, onnxruntime::kMLDomain);
|
||||
|
||||
const std::vector<float> keys{-1.0f, 0.0f, 7.25f};
|
||||
const std::vector<float> values{1.0f, 0.0f, NAN};
|
||||
|
||||
test.AddAttribute("keys_floats", keys);
|
||||
test.AddAttribute("values_floats", values);
|
||||
test.AddAttribute("default_float", 2.718f);
|
||||
|
||||
test.AddInput<float>("X", dims, input);
|
||||
test.AddOutput<float>("Y", dims, output);
|
||||
|
||||
test.Run();
|
||||
}
|
||||
|
||||
} // namespace test
|
||||
} // namespace onnxruntime
|
||||
|
|
|
|||
Loading…
Reference in a new issue