| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // NOTE: This mojom exists in two places and must be kept in sync: |
| // Chromium: //chromeos/services/machine_learning/public/mojom/ |
| // Chrome OS: src/platform2/ml/mojom/ |
| // Note: Other repos downstream of Chromium might also use this mojom. |
| // Example: A backwards-compatible mojom change (and corresponding |
| // implementation change) can be made in Chrome OS first, then replicated to the |
| // clients (Chromium, other downstream repos) later. |
| // Use //chromeos/services/machine_learning/public/mojom/roll_mojom.sh to help |
| // replicate Chrome OS-side changes over to Chromium. |
| |
| module chromeos.machine_learning.mojom; |
| |
| // NOTE: The base directory for 'import' statements is expected to differ |
| // between Chromium and Chrome OS versions of this file. |
| import "ml/mojom/tensor.mojom"; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum ExecuteResult { |
| OK = 0, |
| INPUT_MISSING_ERROR = 1, |
| UNKNOWN_INPUT_ERROR = 2, |
| INPUT_TYPE_ERROR = 3, |
| INPUT_SHAPE_ERROR = 4, |
| INPUT_FORMAT_ERROR = 5, |
| OUTPUT_MISSING_ERROR = 6, |
| UNKNOWN_OUTPUT_ERROR = 7, |
| DUPLICATE_OUTPUT_ERROR = 8, |
| EXECUTION_ERROR = 9, |
| }; |
| |
| // API for performing inference on a TensorFlow graph. A given graph can be |
| // executed multiple times with a single instance of GraphExecutor. |
| interface GraphExecutor { |
| // Initializes input node values as specified in `inputs`, then executes the |
| // graph. The returned `outputs` are the values for the nodes specified in |
| // `output_names`. |
| Execute(map<string, Tensor> inputs, array<string> output_names) |
| => (ExecuteResult result, array<Tensor>? outputs); |
| }; |