runForMultipleInputs method

void runForMultipleInputs(
  1. List<Object> inputs,
  2. Map<int, Object> outputs
)

Implementation

void runForMultipleInputs(List<Object> inputs, Map<int, Object> outputs) {
  checkArgument(inputs.isNotEmpty, message: 'Input error: Inputs should not be null or empty.');
  checkArgument(outputs.isNotEmpty, message: 'Input error: Outputs should not be null or empty.');

  List<Tensor> inputTensors = this.inputTensors;

  for (int i = 0; i < inputs.length; i++) {
    final Tensor tensor = inputTensors[i];
    final List<int>? newShape = tensor.getInputShapeIfDifferent(inputs[i]);
    if (newShape != null) {
      resizeInputTensor(i, newShape);
    }
  }

  if (!_allocated) {
    _allocateTensors();
  }

  inputTensors = this.inputTensors;
  for (int i = 0; i < inputs.length; i++) {
    inputTensors[i].copyFrom(inputs[i]);
  }

  // final int inferenceStartNanos = DateTime.now().microsecondsSinceEpoch;
  invoke();
  // final int lastNativeInferenceDurationMicroSeconds = DateTime.now().microsecondsSinceEpoch - inferenceStartNanos;

  final List<Tensor> outputTensors = this.outputTensors;
  for (int i = 0; i < outputTensors.length; i++) {
    outputTensors[i].copyTo(outputs[i]!);
  }
}