validate method

Future<MlValidationResult> validate(
  1. String input
)

Runs the model on input and returns a validation result.

Returns MlValidationResult.unavailable if the model isn't loaded.

Implementation

Future<MlValidationResult> validate(String input) async {
  if (!_isReady || _interpreter == null) {
    return MlValidationResult.unavailable();
  }

  final inputTensor = preprocess(input);

  // Allocate output buffer matching the model's output shape
  final outputShapes = _interpreter!.getOutputTensors()
      .map((t) => t.shape)
      .toList();

  final outputs = <int, Object>{};
  for (int i = 0; i < outputShapes.length; i++) {
    outputs[i] = _allocateOutput(outputShapes[i]);
  }

  _interpreter!.runForMultipleInputs([inputTensor], outputs);

  return postprocess(
    outputs.values.toList(),
    input,
  );
}