java 如何为单个浮点值创建ONNXTensor?

ozxc1zmp  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(242)

我有以下java代码:

try (OrtEnvironment env = OrtEnvironment.getEnvironment();
             OrtSession.SessionOptions opts = new OrtSession.SessionOptions()) {
            opts.setOptimizationLevel(OrtSession.SessionOptions.OptLevel.BASIC_OPT);

            try (OrtSession session = env.createSession("model.onnx", opts)) {
                OnnxTensor.createTensor(env, 10.0f);
            }
        }

我想创建一个浮点值的OnnxTensor。我得到了下面的Exception:

Exception in thread "main" ai.onnxruntime.OrtException: Cannot convert class java.lang.Float to an OnnxTensor.
    at ai.onnxruntime.TensorInfo.constructFromJavaArray(TensorInfo.java:208)
    at ai.onnxruntime.OnnxTensor.createTensor(OnnxTensor.java:330)
    at ai.onnxruntime.OnnxTensor.createTensor(OnnxTensor.java:314)
7hiiyaii

7hiiyaii1#

我认为这是一个老问题。示例代码可以使用当前版本的onnxruntime API(1.14.0)。
……
var myTensor = OnnxTensor.createTensor(env,10.0f);
System.out.println();
输出:OnnxTensor(info=TensorInfo(javaType=FLOAT,onnxType=ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT,shape=[]))

相关问题