tvm.relay.frontend

Frontends for constructing Relay programs.

Contains the model importers currently defined for Relay.

tvm.relay.frontend.from_mxnet(symbol, shape=None, dtype='float32', arg_params=None, aux_params=None)

Convert from MXNet”s model into compatible relay Function.

Parameters:
  • symbol (mxnet.Symbol or mxnet.gluon.HybridBlock) – MXNet symbol.
  • shape (dict of str to tuple, optional) – The input shape to the graph
  • dtype (str or dict of str to str) – The input types to the graph
  • arg_params (dict of str to mx.NDArray) – The argument parameters in mxnet
  • aux_params (dict of str to mx.NDArray) – The auxiliary parameters in mxnet
Returns:

  • sym (tvm.relay.Function) – Compatible relay Function
  • params (dict of str to tvm.NDArray) – The parameter dict to be used by nnvm

tvm.relay.frontend.from_keras(model, shape=None)

Convert keras model to relay Function.

Parameters:
  • model (keras.engine.training.Model) – The keras model to be converted.
  • shape (dict of str to int list/tuple) – Input shapes of the model, optional
Returns:

  • func (tvm.relay.Function) – Compatible relay Function.
  • params (dict of str to tvm.NDArray) – The parameter dict to be used by Relay.

tvm.relay.frontend.from_onnx(model, shape=None, dtype='float32')

Convert a ONNX model into an equivalent Relay Function.

ONNX graphs are represented as Python Protobuf objects. The companion parameters will be handled automatically. However, the input names from onnx graph is vague, mixing inputs and network weights/bias such as “1”, “2”… For convenience, we rename the real input names to “input_0”, “input_1”… And renaming parameters to “param_0”, “param_1”…

Parameters:
  • model (protobuf object) – ONNX ModelProto after ONNX v1.1.0
  • shape (dict of str to tuple, optional) – The input shape to the graph
  • dtype (str or dict of str to str) – The input types to the graph
Returns:

  • sym (tvm.relay.expr.Function) – Compatible relay function
  • params (dict of str to tvm.NDArray) – The parameter dict to be used by relay

tvm.relay.frontend.from_tflite(model, shape_dict, dtype_dict)

Convert from tflite model into compatible relay Function.

Parameters:
  • model – tflite.Model.Model
  • shape_dict (dict of str to int list/tuple) – Input shapes of the model.
  • dtype_dict (dict of str to str) – Input types of the model.
Returns:

  • func (tvm.relay.Function) – Compatible relay Function
  • params (dict of str to tvm.NDArray) – The parameter dict to be used by relay

tvm.relay.frontend.from_coreml(model, shape=None)

Convert from coreml model into Relay Function.

Parameters:
  • model – coremltools.models.MLModel of a NeuralNetworkClassifier
  • shape (dict of str to int list/tuple, optional) – The input shapes
Returns:

  • func (tvm.relay.Function) – Compatible relay Function.
  • params (dict of str to tvm.NDArray) – The parameter dict to be used by Relay.

tvm.relay.frontend.from_caffe2(init_net, predict_net, shape=None, dtype='float32')

Load caffe2 graph which contains init_net and predict_net into Relay Function.

Parameters:
  • init_net (protobuf object) – Caffe2 NetDef containing the weights
  • predict_net (protobuf object) – Caffe2 NetDef containing the graph
  • shape (dict of str to tuple) – The input shape to the graph
  • dtype (str or dict of str to str) – The input types to the graph
Returns:

  • sym (tvm.relay.expr.Function) – Compatible relay function
  • params (dict of str to tvm.ndarray) – Dict of converted parameters stored in tvm.ndarray format

tvm.relay.frontend.from_tensorflow(graph, layout='NHWC', shape=None, outputs=None)

Load tensorflow graph which is a python tensorflow graph object into relay. The companion parameters will be handled automatically.

Parameters:graph (GraphDef object) – Tensorflow GraphDef
Returns:
  • sym (relay.op) – Compatible relay operator
  • params (dict of str to tvm.ndarray) – Dict of converted parameters stored in tvm.ndarray format