When a client of ML Service calls Model.CreateGraphExecutor and then GraphExecutor.Execute, we need to use TensorFlow to actually evaluate the given model and return the results.
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/26abcd822eea3e23e262623d0a0bb3ec30af3606 commit 26abcd822eea3e23e262623d0a0bb3ec30af3606 Author: Michael Martis <martis@chromium.org> Date: Thu Aug 23 20:20:52 2018 ml: Add GraphExecutor implementation. The GraphExecutorImpl class allows for execution of TensorFlow lite graphs using input specified via Tensor Mojo messages. This change also moves all existing logic (except the main function) into a static library, which is used to run unit tests. BUG= chromium:836098 TEST=Unit tests added. Change-Id: I9448af0465544a8ac436a36376a617e2df621202 Reviewed-on: https://chromium-review.googlesource.com/1166275 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Michael Martis <martis@chromium.org> Reviewed-by: Michael Martis <martis@chromium.org> [add] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/graph_executor_impl.cc [add] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/graph_executor_impl_test.cc [add] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/tensor_view.cc [add] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/graph_executor_impl.h [add] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/tensor_view.h [modify] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/mojom/tensor.mojom [modify] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/ml.gyp [modify] https://crrev.com/26abcd822eea3e23e262623d0a0bb3ec30af3606/ml/mojom/graph_executor.mojom
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a967f63f5ff7b6ea6b582e8544c5060fd055925d commit a967f63f5ff7b6ea6b582e8544c5060fd055925d Author: Michael Martis <martis@chromium.org> Date: Fri Aug 31 12:23:36 2018 ml: Add Model implementation. The ModelImpl class holds a loaded TF lite model and produces GraphExecutor objects that can be used to perform inference with this model. This CL also breaks out some test logic into a separate utility, and adds a global testrunner main (which sets up a Mojo message loop). BUG= chromium:836098 TEST=Unit tests added. Change-Id: I076bbe91a7e633299405b895f0705b795f0c2b0b Reviewed-on: https://chromium-review.googlesource.com/1170143 Commit-Ready: Michael Martis <martis@chromium.org> Tested-by: Michael Martis <martis@chromium.org> Reviewed-by: Michael Martis <martis@chromium.org> [modify] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/graph_executor_impl_test.cc [modify] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/mojom/model.mojom [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/model_impl_test.cc [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/model_impl.h [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/model_impl.cc [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/testrunner.cc [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/test_utils.h [modify] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/ml.gyp [add] https://crrev.com/a967f63f5ff7b6ea6b582e8544c5060fd055925d/ml/testdata/add.tflite
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a74af93c06e4657fd44fd86332c0638c6e190331 commit a74af93c06e4657fd44fd86332c0638c6e190331 Author: Michael Martis <martis@chromium.org> Date: Sun Sep 09 17:33:50 2018 ml: Add model loading logic to the ML service. This change allows MachineLearningServiceImpl objects to bind ModelRequests. They do this using a static list of model metadata, which right now holds only one test model. BUG= chromium:836098 TEST=Unit tests added. Change-Id: I6b7917f2ef2919e70670b88efbf9ae43d3bd8fcc Reviewed-on: https://chromium-review.googlesource.com/1172236 Commit-Ready: Michael Martis <martis@chromium.org> Tested-by: Michael Martis <martis@chromium.org> Reviewed-by: Michael Martis <martis@chromium.org> [modify] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/mojom/machine_learning_service.mojom [modify] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/mojom/model.mojom [modify] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/machine_learning_service_impl.cc [add] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/model_metadata.cc [modify] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/machine_learning_service_impl.h [add] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/model_metadata.h [add] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/machine_learning_service_impl_test.cc [modify] https://crrev.com/a74af93c06e4657fd44fd86332c0638c6e190331/ml/ml.gyp
Comment 1 by amoylan@chromium.org
, Apr 24 2018