Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsupported left operand type for - ("FLOAT") [operator] #1960

Open
tuanle0910 opened this issue Nov 20, 2024 · 1 comment
Open

Unsupported left operand type for - ("FLOAT") [operator] #1960

tuanle0910 opened this issue Nov 20, 2024 · 1 comment
Labels
question Further information is requested

Comments

@tuanle0910
Copy link

tuanle0910 commented Nov 20, 2024

Hi everyone, I am trying to use onnxscript to convert a function into a script via the @script decorator. I have two questions:

  1. Is there any ways to do subtraction between an input with the FLOAT type and the input with np.float32? If not, how do I convert from one to the other (I have looked up ALL the possible documentations from onnx but it's not much helpful). Right now I keep getting the error error: Unsupported left operand type for - ("FLOAT") [operator] with note: Right operand is of type "BFLOAT16 | BOOL | COMPLEX128 | COMPLEX64 | DOUBLE | <11 more items>"
  2. Can I still use the normal operator (e.g. +, -, :, *) to do addition/subtraction/division/multiplication within the function that is supposed to be rewritten into .onnx model? The reason I ask is because it looks like onnxscript needs data to be of TensorType?

Package versions. onnxscript = 0.1.0.dev2024112, onnx=1.17.0, onnxconverter-common=1.13.0, onnxruntime=1.20.0, skl2onnx=1.17.0

Example.

     import numpy as np
     import onnx
     import pandas as pd
     from onnxscript import FLOAT
     from onnxscript import opset15 as op
    from onnxscript import script      
    z1 = 5.0
    z2 = 3.0
    t1 = z1.astype('np.float32')
    t2 = z2.astype('np.float32')
    cum_mins = [1,2,3,4]
    @script()
    def model_1(x: FLOAT, y: FLOAT) -> Tuple[Any, Any]:
        # Define constants
        coeff1 = op.Constant(value_float=t1)
        coeff2 = op.Constant(value_float=t2)

        mean_x = op.Constant(value_float=x)
        mean_y = op.Constant(value_float=y)

        exp_arg = coeff1 * (x - mean_x) + coeff2 * (y - mean_y)    
        exp = op.Constant(value_float=0.75) * op.Exp(exp_arg)

        h = op.Constant(value_floats=cum_mins)

        return (exp, h)
@tuanle0910
Copy link
Author

I'm sorry, but can someone please help me with my question above?

@justinchuby justinchuby added the question Further information is requested label Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants