createInt64 method
Implementation
Pointer<OrtValue> createInt64(List<int> shape, List<int> data) {
_runtime.ensureInitialized();
final api = _runtime.api.ref;
final memInfo = createCpuMemoryInfo();
final valuePtr = calloc<Pointer<OrtValue>>();
final shapePtr = calloc<Int64>(shape.length);
final dataPtr = calloc<Int64>(data.length);
try {
for (var i = 0; i < shape.length; i++) {
shapePtr[i] = shape[i];
}
for (var i = 0; i < data.length; i++) {
dataPtr[i] = data[i];
}
final status = api.CreateTensorWithDataAsOrtValue
.asFunction<
Pointer<OrtStatus> Function(
Pointer<OrtMemoryInfo>,
Pointer<Void>,
int,
Pointer<Int64>,
int,
int,
Pointer<Pointer<OrtValue>>,
)
>()(
memInfo,
dataPtr.cast(),
data.length * sizeOf<Int64>(),
shapePtr,
shape.length,
ONNXTensorElementDataType.ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64.value,
valuePtr,
);
_checkStatus(status);
return valuePtr.value;
} finally {
releaseMemoryInfo(memInfo);
calloc.free(valuePtr);
calloc.free(shapePtr);
}
}