Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tic
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wenyuanbo
tic
Commits
e1827173
Commit
e1827173
authored
Jun 27, 2019
by
Alexander Pivovarov
Committed by
Tianqi Chen
Jun 27, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add mod supoort in relay.build (#3424)
parent
18a53a41
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
33 additions
and
23 deletions
+33
-23
python/tvm/relay/build_module.py
+17
-5
tests/python/frontend/caffe2/test_forward.py
+1
-1
tests/python/frontend/coreml/test_forward.py
+1
-1
tests/python/frontend/darknet/test_forward.py
+1
-1
tests/python/frontend/keras/test_forward.py
+1
-1
tests/python/frontend/mxnet/test_forward.py
+1
-1
tests/python/frontend/onnx/test_forward.py
+1
-1
tests/python/frontend/tensorflow/test_forward.py
+2
-2
tests/python/frontend/tflite/test_forward.py
+1
-3
tutorials/frontend/deploy_model_on_android.py
+1
-1
tutorials/frontend/deploy_ssd_gluoncv.py
+1
-1
tutorials/frontend/from_caffe2.py
+1
-1
tutorials/frontend/from_coreml.py
+1
-1
tutorials/frontend/from_darknet.py
+1
-1
tutorials/frontend/from_tensorflow.py
+1
-1
tutorials/frontend/from_tflite.py
+1
-1
No files found.
python/tvm/relay/build_module.py
View file @
e1827173
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
Construct the necessary state for the TVM graph runtime
Construct the necessary state for the TVM graph runtime
from a Relay expression.
from a Relay expression.
"""
"""
import
warnings
import
numpy
as
np
import
numpy
as
np
from
tvm
import
expr
as
tvm_expr
from
tvm
import
expr
as
tvm_expr
...
@@ -27,6 +28,7 @@ from . import _build_module
...
@@ -27,6 +28,7 @@ from . import _build_module
from
.
import
ir_pass
from
.
import
ir_pass
from
.
import
ty
as
_ty
from
.
import
ty
as
_ty
from
.
import
expr
as
_expr
from
.
import
expr
as
_expr
from
.module
import
Module
as
_Module
from
.backend
import
interpreter
as
_interpreter
from
.backend
import
interpreter
as
_interpreter
from
.backend.vm
import
VMExecutor
from
.backend.vm
import
VMExecutor
...
@@ -137,14 +139,14 @@ class BuildModule(object):
...
@@ -137,14 +139,14 @@ class BuildModule(object):
return
ret
return
ret
def
build
(
func
,
target
=
None
,
target_host
=
None
,
params
=
None
):
def
build
(
mod
,
target
=
None
,
target_host
=
None
,
params
=
None
):
"""Helper function that builds a Relay function to run on TVM graph
"""Helper function that builds a Relay function to run on TVM graph
runtime.
runtime.
Parameters
Parameters
----------
----------
func: relay.Function
mod : relay.Module
The
function to buil
d.
The
module to build. Using relay.Function is deprecate
d.
target : str, :any:`tvm.target.Target`, or dict of str(i.e. device/context
target : str, :any:`tvm.target.Target`, or dict of str(i.e. device/context
name) to str/tvm.target.Target, optional
name) to str/tvm.target.Target, optional
...
@@ -175,6 +177,17 @@ def build(func, target=None, target_host=None, params=None):
...
@@ -175,6 +177,17 @@ def build(func, target=None, target_host=None, params=None):
params : dict
params : dict
The parameters of the final graph.
The parameters of the final graph.
"""
"""
if
isinstance
(
mod
,
_Module
):
func
=
mod
[
mod
.
entry_func
]
elif
isinstance
(
mod
,
_expr
.
Function
):
func
=
mod
warnings
.
warn
(
"Please use input parameter mod (tvm.relay.module.Module) "
"instead of deprecated parameter func (tvm.relay.expr.Function)"
,
DeprecationWarning
)
else
:
raise
ValueError
(
"Type of input parameter mod must be tvm.relay.module.Module"
)
target
=
_update_target
(
target
)
target
=
_update_target
(
target
)
if
isinstance
(
target_host
,
(
str
,
_target
.
Target
)):
if
isinstance
(
target_host
,
(
str
,
_target
.
Target
)):
...
@@ -192,8 +205,7 @@ def build(func, target=None, target_host=None, params=None):
...
@@ -192,8 +205,7 @@ def build(func, target=None, target_host=None, params=None):
with
tophub_context
:
with
tophub_context
:
bld_mod
=
BuildModule
()
bld_mod
=
BuildModule
()
graph_json
,
mod
,
params
=
bld_mod
.
build
(
func
,
target
,
target_host
,
graph_json
,
mod
,
params
=
bld_mod
.
build
(
func
,
target
,
target_host
,
params
)
params
)
return
graph_json
,
mod
,
params
return
graph_json
,
mod
,
params
...
...
tests/python/frontend/caffe2/test_forward.py
View file @
e1827173
...
@@ -43,7 +43,7 @@ def get_tvm_output(model,
...
@@ -43,7 +43,7 @@ def get_tvm_output(model,
mod
,
params
=
relay
.
frontend
.
from_caffe2
(
mod
,
params
=
relay
.
frontend
.
from_caffe2
(
model
.
init_net
,
model
.
predict_net
,
shape_dict
,
dtype_dict
)
model
.
init_net
,
model
.
predict_net
,
shape_dict
,
dtype_dict
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
...
...
tests/python/frontend/coreml/test_forward.py
View file @
e1827173
...
@@ -73,7 +73,7 @@ def run_tvm_graph(coreml_model, target, ctx, input_data, input_name, output_shap
...
@@ -73,7 +73,7 @@ def run_tvm_graph(coreml_model, target, ctx, input_data, input_name, output_shap
mod
,
params
=
relay
.
frontend
.
from_coreml
(
coreml_model
,
shape_dict
)
mod
,
params
=
relay
.
frontend
.
from_coreml
(
coreml_model
,
shape_dict
)
with
relay
.
transform
.
build_config
(
opt_level
=
3
):
with
relay
.
transform
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
from
tvm.contrib
import
graph_runtime
from
tvm.contrib
import
graph_runtime
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
...
...
tests/python/frontend/darknet/test_forward.py
View file @
e1827173
...
@@ -55,7 +55,7 @@ def _get_tvm_output(net, data, build_dtype='float32', states=None):
...
@@ -55,7 +55,7 @@ def _get_tvm_output(net, data, build_dtype='float32', states=None):
mod
,
params
=
relay
.
frontend
.
from_darknet
(
net
,
data
.
shape
,
dtype
)
mod
,
params
=
relay
.
frontend
.
from_darknet
(
net
,
data
.
shape
,
dtype
)
target
=
'llvm'
target
=
'llvm'
shape_dict
=
{
'data'
:
data
.
shape
}
shape_dict
=
{
'data'
:
data
.
shape
}
graph
,
library
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
library
,
params
=
relay
.
build
(
mod
,
target
,
target
,
params
=
params
)
params
=
params
)
...
...
tests/python/frontend/keras/test_forward.py
View file @
e1827173
...
@@ -44,7 +44,7 @@ def verify_keras_frontend(keras_model, need_transpose=True):
...
@@ -44,7 +44,7 @@ def verify_keras_frontend(keras_model, need_transpose=True):
shape_dict
=
{
name
:
x
.
shape
for
(
name
,
x
)
in
zip
(
keras_model
.
input_names
,
xs
)}
shape_dict
=
{
name
:
x
.
shape
for
(
name
,
x
)
in
zip
(
keras_model
.
input_names
,
xs
)}
mod
,
params
=
relay
.
frontend
.
from_keras
(
keras_model
,
shape_dict
)
mod
,
params
=
relay
.
frontend
.
from_keras
(
keras_model
,
shape_dict
)
with
relay
.
transform
.
build_config
(
opt_level
=
2
):
with
relay
.
transform
.
build_config
(
opt_level
=
2
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
target
,
params
=
params
)
params
=
params
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
...
...
tests/python/frontend/mxnet/test_forward.py
View file @
e1827173
...
@@ -66,7 +66,7 @@ def verify_mxnet_frontend_impl(mx_symbol,
...
@@ -66,7 +66,7 @@ def verify_mxnet_frontend_impl(mx_symbol,
arg_params
=
args
,
arg_params
=
args
,
aux_params
=
auxs
)
aux_params
=
auxs
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
m
=
graph_runtime
.
create
(
graph
,
lib
,
ctx
)
# set inputs
# set inputs
m
.
set_input
(
"data"
,
tvm
.
nd
.
array
(
x
.
astype
(
dtype
)))
m
.
set_input
(
"data"
,
tvm
.
nd
.
array
(
x
.
astype
(
dtype
)))
...
...
tests/python/frontend/onnx/test_forward.py
View file @
e1827173
...
@@ -47,7 +47,7 @@ def get_tvm_output(graph_def, input_data, target, ctx, output_shape=None, output
...
@@ -47,7 +47,7 @@ def get_tvm_output(graph_def, input_data, target, ctx, output_shape=None, output
mod
,
params
=
relay
.
frontend
.
from_onnx
(
graph_def
,
shape_dict
)
mod
,
params
=
relay
.
frontend
.
from_onnx
(
graph_def
,
shape_dict
)
with
relay
.
build_config
(
opt_level
=
1
):
with
relay
.
build_config
(
opt_level
=
1
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
target
,
params
=
params
)
params
=
params
)
...
...
tests/python/frontend/tensorflow/test_forward.py
View file @
e1827173
...
@@ -64,7 +64,7 @@ def run_tvm_graph(graph_def, input_data, input_node, num_output=1,
...
@@ -64,7 +64,7 @@ def run_tvm_graph(graph_def, input_data, input_node, num_output=1,
shape
=
shape_dict
,
shape
=
shape_dict
,
outputs
=
out_names
)
outputs
=
out_names
)
with
relay
.
build_config
(
opt_level
=
opt_level
):
with
relay
.
build_config
(
opt_level
=
opt_level
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
target_host
,
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
target_host
,
params
)
ctx
=
tvm
.
context
(
target
,
0
)
ctx
=
tvm
.
context
(
target
,
0
)
from
tvm.contrib
import
graph_runtime
from
tvm.contrib
import
graph_runtime
...
@@ -1487,7 +1487,7 @@ def test_forward_ptb():
...
@@ -1487,7 +1487,7 @@ def test_forward_ptb():
'Model/RNN/RNN/multi_rnn_cell/cell_0/lstm_cell/LSTMBlockCell_h'
:
'float32'
}
'Model/RNN/RNN/multi_rnn_cell/cell_0/lstm_cell/LSTMBlockCell_h'
:
'float32'
}
target
=
'llvm'
target
=
'llvm'
with
relay
.
build_config
(
opt_level
=
0
):
with
relay
.
build_config
(
opt_level
=
0
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
target
,
params
=
params
)
params
=
params
)
from
tvm.contrib
import
graph_runtime
from
tvm.contrib
import
graph_runtime
...
...
tests/python/frontend/tflite/test_forward.py
View file @
e1827173
...
@@ -71,9 +71,7 @@ def run_tvm_graph(tflite_model_buf, input_data, input_node, num_output=1, target
...
@@ -71,9 +71,7 @@ def run_tvm_graph(tflite_model_buf, input_data, input_node, num_output=1, target
shape_dict
=
shape_dict
,
shape_dict
=
shape_dict
,
dtype_dict
=
dtype_dict
)
dtype_dict
=
dtype_dict
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
],
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
target
,
params
=
params
)
ctx
=
tvm
.
context
(
target
,
0
)
ctx
=
tvm
.
context
(
target
,
0
)
from
tvm.contrib
import
graph_runtime
from
tvm.contrib
import
graph_runtime
...
...
tutorials/frontend/deploy_model_on_android.py
View file @
e1827173
...
@@ -263,7 +263,7 @@ shape_dict = {input_name: x.shape}
...
@@ -263,7 +263,7 @@ shape_dict = {input_name: x.shape}
mod
,
params
=
relay
.
frontend
.
from_keras
(
keras_mobilenet_v2
,
shape_dict
)
mod
,
params
=
relay
.
frontend
.
from_keras
(
keras_mobilenet_v2
,
shape_dict
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
=
target
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
=
target
,
target_host
=
target_host
,
params
=
params
)
target_host
=
target_host
,
params
=
params
)
# After `relay.build`, you will get three return values: graph,
# After `relay.build`, you will get three return values: graph,
...
...
tutorials/frontend/deploy_ssd_gluoncv.py
View file @
e1827173
...
@@ -78,7 +78,7 @@ block = model_zoo.get_model(model_name, pretrained=True)
...
@@ -78,7 +78,7 @@ block = model_zoo.get_model(model_name, pretrained=True)
def
build
(
target
):
def
build
(
target
):
mod
,
params
=
relay
.
frontend
.
from_mxnet
(
block
,
{
"data"
:
dshape
})
mod
,
params
=
relay
.
frontend
.
from_mxnet
(
block
,
{
"data"
:
dshape
})
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
return
graph
,
lib
,
params
return
graph
,
lib
,
params
######################################################################
######################################################################
...
...
tutorials/frontend/from_caffe2.py
View file @
e1827173
...
@@ -89,7 +89,7 @@ mod, params = relay.frontend.from_caffe2(resnet50.init_net, resnet50.predict_net
...
@@ -89,7 +89,7 @@ mod, params = relay.frontend.from_caffe2(resnet50.init_net, resnet50.predict_net
# target x86 CPU
# target x86 CPU
target
=
'llvm'
target
=
'llvm'
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
######################################################################
######################################################################
# Execute on TVM
# Execute on TVM
...
...
tutorials/frontend/from_coreml.py
View file @
e1827173
...
@@ -71,7 +71,7 @@ shape_dict = {'image': x.shape}
...
@@ -71,7 +71,7 @@ shape_dict = {'image': x.shape}
mod
,
params
=
relay
.
frontend
.
from_coreml
(
mlmodel
,
shape_dict
)
mod
,
params
=
relay
.
frontend
.
from_coreml
(
mlmodel
,
shape_dict
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
target
,
params
=
params
)
params
=
params
)
...
...
tutorials/frontend/from_darknet.py
View file @
e1827173
...
@@ -95,7 +95,7 @@ data = np.empty([batch_size, net.c, net.h, net.w], dtype)
...
@@ -95,7 +95,7 @@ data = np.empty([batch_size, net.c, net.h, net.w], dtype)
shape
=
{
'data'
:
data
.
shape
}
shape
=
{
'data'
:
data
.
shape
}
print
(
"Compiling the model..."
)
print
(
"Compiling the model..."
)
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
=
target
,
target
=
target
,
target_host
=
target_host
,
target_host
=
target_host
,
params
=
params
)
params
=
params
)
...
...
tutorials/frontend/from_tensorflow.py
View file @
e1827173
...
@@ -140,7 +140,7 @@ print("Tensorflow protobuf imported to relay frontend.")
...
@@ -140,7 +140,7 @@ print("Tensorflow protobuf imported to relay frontend.")
# lib: target library which can be deployed on target with TVM runtime.
# lib: target library which can be deployed on target with TVM runtime.
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
=
target
,
target
=
target
,
target_host
=
target_host
,
target_host
=
target_host
,
params
=
params
)
params
=
params
)
...
...
tutorials/frontend/from_tflite.py
View file @
e1827173
...
@@ -145,7 +145,7 @@ mod, params = relay.frontend.from_tflite(tflite_model,
...
@@ -145,7 +145,7 @@ mod, params = relay.frontend.from_tflite(tflite_model,
# target x86 CPU
# target x86 CPU
target
=
"llvm"
target
=
"llvm"
with
relay
.
build_config
(
opt_level
=
3
):
with
relay
.
build_config
(
opt_level
=
3
):
graph
,
lib
,
params
=
relay
.
build
(
mod
[
mod
.
entry_func
]
,
target
,
params
=
params
)
graph
,
lib
,
params
=
relay
.
build
(
mod
,
target
,
params
=
params
)
######################################################################
######################################################################
# Execute on TVM
# Execute on TVM
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment