runForMultipleInputs method
Run for multiple inputs and outputs
Implementation
void runForMultipleInputs(List<Object> inputs, Map<int, Object> outputs) {
if (inputs.isEmpty) {
throw ArgumentError('Input error: Inputs should not be null or empty.');
}
if (outputs.isEmpty) {
throw ArgumentError('Input error: Outputs should not be null or empty.');
}
var inputTensors = getInputTensors();
for (int i = 0; i < inputs.length; i++) {
var tensor = inputTensors.elementAt(i);
final newShape = tensor.getInputShapeIfDifferent(inputs[i]);
if (newShape != null) {
resizeInputTensor(i, newShape);
}
}
if (!_allocated) {
allocateTensors();
_allocated = true;
}
inputTensors = getInputTensors();
for (int i = 0; i < inputs.length; i++) {
inputTensors.elementAt(i).setTo(inputs[i]);
}
var inferenceStartNanos = DateTime.now().microsecondsSinceEpoch;
invoke();
_lastNativeInferenceDurationMicroSeconds =
DateTime.now().microsecondsSinceEpoch - inferenceStartNanos;
var outputTensors = getOutputTensors();
for (var i = 0; i < outputTensors.length; i++) {
outputTensors[i].copyTo(outputs[i]!);
}
}