aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/model_reader.py
diff options
context:
space:
mode:
authorPatrik Gustavsson <patrik.gustavsson@arm.com>2021-06-28 07:41:58 +0200
committerPatrik Gustavsson <patrik.gustavsson@arm.com>2021-07-08 10:57:25 +0200
commit8f1f9aaa58175b17cd2e505bfcdb0e40c955ea72 (patch)
tree0174f8ef15007f5e220cfc4d283046451282102e /ethosu/vela/model_reader.py
parent6f4955aa7097b123bbf31aae4654547bb3e3c68c (diff)
downloadethos-u-vela-8f1f9aaa58175b17cd2e505bfcdb0e40c955ea72.tar.gz
MLBEDSW-4838 Added basic TOSA support.
Added basic TOSA support, enabling Vela to read and compile a .tosa file corresponding to CONV2D + Rescale + Clamp, and writing it to an optimized .tflite file. The optimized .tflite file, will in this case, hold a commandstream where the Rescale and Clamp has been fused into the CONV2D. The optimized tflite file is not output from Vela. -Added support to read .tosa file into Vela internal structure. - Added tosa_reader.py, tosa_mapper.py and helper files stored under tosa/ - Support for this limited to ~10 ops -Added reader_util.py for functions common for TOSA and TFLite -Added tosa_graph_optimiser.py -Added support to fuse Rescale into convolution -Modified handling for padding -Added support to fuse Clamp to previous op -Added graph_optimiser_util.py -Moved functions common for TOSA/TFLite graph optimization to this file. -Renamed graph_optimiser.py to tflite_graph_optmiser.py -Added separate tosa_supported_operators.py -Added supported_operator_util.py -For functions in common for TOSA/TFLite Signed-off-by: Patrik Gustavsson <patrik.gustavsson@arm.com> Change-Id: Ic3c540504ec8c5eb4771397fdc6882050ecf33ab
Diffstat (limited to 'ethosu/vela/model_reader.py')
-rw-r--r--ethosu/vela/model_reader.py37
1 files changed, 30 insertions, 7 deletions
diff --git a/ethosu/vela/model_reader.py b/ethosu/vela/model_reader.py
index bb49b64a..f48645d3 100644
--- a/ethosu/vela/model_reader.py
+++ b/ethosu/vela/model_reader.py
@@ -16,7 +16,9 @@
# Description:
# Dispatcher for reading a neural network model.
from . import tflite_reader
+from . import tosa_reader
from .errors import InputFileError
+from .nn_graph import NetworkType
class ModelReaderOptions:
@@ -37,12 +39,33 @@ def read_model(fname, options, feed_dict=None, output_node_names=None, initialis
output_node_names = []
if initialisation_nodes is None:
initialisation_nodes = []
- return tflite_reader.read_tflite(
- fname,
- options.batch_size,
- feed_dict=feed_dict,
- output_node_names=output_node_names,
- initialisation_nodes=initialisation_nodes,
+ return (
+ tflite_reader.read_tflite(
+ fname,
+ options.batch_size,
+ feed_dict=feed_dict,
+ output_node_names=output_node_names,
+ initialisation_nodes=initialisation_nodes,
+ ),
+ NetworkType.TFLite,
+ )
+ elif fname.endswith(".tosa"):
+ if feed_dict is None:
+ feed_dict = {}
+ if output_node_names is None:
+ output_node_names = []
+ if initialisation_nodes is None:
+ initialisation_nodes = []
+
+ return (
+ tosa_reader.read_tosa(
+ fname,
+ options.batch_size,
+ feed_dict=feed_dict,
+ output_node_names=output_node_names,
+ initialisation_nodes=initialisation_nodes,
+ ),
+ NetworkType.TOSA,
)
else:
- raise InputFileError(fname, "Unsupported file extension. Only .tflite files are supported")
+ raise InputFileError(fname, "Unsupported file extension. Only .tflite and .tosa files are supported")