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
a8275bdb
Commit
a8275bdb
authored
May 29, 2019
by
masahi
Committed by
Tianqi Chen
May 28, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[TOPI] Fix resize nearest with fractional scaling (#3244)
parent
a479432d
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
43 additions
and
35 deletions
+43
-35
nnvm/tests/python/compiler/test_top_level2.py
+1
-1
nnvm/tests/python/frontend/coreml/test_forward.py
+1
-1
nnvm/tests/python/frontend/onnx/test_forward.py
+1
-1
tests/python/frontend/coreml/test_forward.py
+1
-1
tests/python/frontend/onnx/test_forward.py
+1
-1
tests/python/relay/test_op_level2.py
+1
-1
tests/python/relay/test_op_level5.py
+1
-1
topi/include/topi/image/resize.h
+6
-15
topi/python/topi/nn/upsampling.py
+0
-1
topi/python/topi/testing/upsampling_python.py
+13
-3
topi/tests/python/test_topi_resize.py
+16
-8
topi/tests/python/test_topi_upsampling.py
+1
-1
No files found.
nnvm/tests/python/compiler/test_top_level2.py
View file @
a8275bdb
...
@@ -305,7 +305,7 @@ def test_upsampling_nearest_neighbor():
...
@@ -305,7 +305,7 @@ def test_upsampling_nearest_neighbor():
data
=
tvm
.
nd
.
array
(
a_np
)
data
=
tvm
.
nd
.
array
(
a_np
)
m
.
run
(
x
=
data
)
m
.
run
(
x
=
data
)
out
=
m
.
get_output
(
0
,
tvm
.
nd
.
empty
(
oshape
,
dtype
))
out
=
m
.
get_output
(
0
,
tvm
.
nd
.
empty
(
oshape
,
dtype
))
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
scale
,
"NCHW"
)
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
(
scale
,
scale
)
,
"NCHW"
)
tvm
.
testing
.
assert_allclose
(
out
.
asnumpy
(),
b_np
,
rtol
=
1e-5
)
tvm
.
testing
.
assert_allclose
(
out
.
asnumpy
(),
b_np
,
rtol
=
1e-5
)
def
test_upsampling_bilinear
():
def
test_upsampling_bilinear
():
...
...
nnvm/tests/python/frontend/coreml/test_forward.py
View file @
a8275bdb
...
@@ -195,7 +195,7 @@ def verify_UpsampleLayerParams(input_dim, scale, mode):
...
@@ -195,7 +195,7 @@ def verify_UpsampleLayerParams(input_dim, scale, mode):
a_np
=
np
.
full
(
input_dim
,
1
,
dtype
=
dtype
)
a_np
=
np
.
full
(
input_dim
,
1
,
dtype
=
dtype
)
if
mode
==
'NN'
:
if
mode
==
'NN'
:
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
scale
)
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
(
scale
,
scale
)
)
else
:
else
:
new_h
=
input_dim
[
2
]
*
scale
new_h
=
input_dim
[
2
]
*
scale
new_w
=
input_dim
[
3
]
*
scale
new_w
=
input_dim
[
3
]
*
scale
...
...
nnvm/tests/python/frontend/onnx/test_forward.py
View file @
a8275bdb
...
@@ -405,7 +405,7 @@ def _test_upsample_nearest():
...
@@ -405,7 +405,7 @@ def _test_upsample_nearest():
y
=
helper
.
make_node
(
"Upsample"
,
[
'in'
],
[
'out'
],
mode
=
'nearest'
,
scales
=
[
1.0
,
1.0
,
2.0
,
2.0
])
y
=
helper
.
make_node
(
"Upsample"
,
[
'in'
],
[
'out'
],
mode
=
'nearest'
,
scales
=
[
1.0
,
1.0
,
2.0
,
2.0
])
in_array
=
np
.
random
.
uniform
(
size
=
in_shape
)
.
astype
(
np
.
float32
)
in_array
=
np
.
random
.
uniform
(
size
=
in_shape
)
.
astype
(
np
.
float32
)
out_array
=
topi
.
testing
.
upsampling_python
(
in_array
,
scale
,
"NCHW"
)
out_array
=
topi
.
testing
.
upsampling_python
(
in_array
,
(
scale
,
scale
)
,
"NCHW"
)
graph
=
helper
.
make_graph
([
y
],
graph
=
helper
.
make_graph
([
y
],
'upsample_nearest_test'
,
'upsample_nearest_test'
,
...
...
tests/python/frontend/coreml/test_forward.py
View file @
a8275bdb
...
@@ -179,7 +179,7 @@ def verify_UpsampleLayerParams(input_dim, scale, mode):
...
@@ -179,7 +179,7 @@ def verify_UpsampleLayerParams(input_dim, scale, mode):
a_np
=
np
.
full
(
input_dim
,
1
,
dtype
=
dtype
)
a_np
=
np
.
full
(
input_dim
,
1
,
dtype
=
dtype
)
if
mode
==
'NN'
:
if
mode
==
'NN'
:
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
scale
)
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
(
scale
,
scale
)
)
else
:
else
:
new_h
=
input_dim
[
2
]
*
scale
new_h
=
input_dim
[
2
]
*
scale
new_w
=
input_dim
[
3
]
*
scale
new_w
=
input_dim
[
3
]
*
scale
...
...
tests/python/frontend/onnx/test_forward.py
View file @
a8275bdb
...
@@ -417,7 +417,7 @@ def _test_upsample_nearest():
...
@@ -417,7 +417,7 @@ def _test_upsample_nearest():
y
=
helper
.
make_node
(
"Upsample"
,
[
'in'
],
[
'out'
],
mode
=
'nearest'
,
scales
=
[
1.0
,
1.0
,
2.0
,
2.0
])
y
=
helper
.
make_node
(
"Upsample"
,
[
'in'
],
[
'out'
],
mode
=
'nearest'
,
scales
=
[
1.0
,
1.0
,
2.0
,
2.0
])
in_array
=
np
.
random
.
uniform
(
size
=
in_shape
)
.
astype
(
np
.
float32
)
in_array
=
np
.
random
.
uniform
(
size
=
in_shape
)
.
astype
(
np
.
float32
)
out_array
=
topi
.
testing
.
upsampling_python
(
in_array
,
scale
,
"NCHW"
)
out_array
=
topi
.
testing
.
upsampling_python
(
in_array
,
(
scale
,
scale
)
,
"NCHW"
)
graph
=
helper
.
make_graph
([
y
],
graph
=
helper
.
make_graph
([
y
],
'upsample_nearest_test'
,
'upsample_nearest_test'
,
...
...
tests/python/relay/test_op_level2.py
View file @
a8275bdb
...
@@ -485,7 +485,7 @@ def _test_upsampling(layout, method):
...
@@ -485,7 +485,7 @@ def _test_upsampling(layout, method):
func
=
relay
.
Function
([
x
],
y
)
func
=
relay
.
Function
([
x
],
y
)
data
=
np
.
random
.
uniform
(
size
=
dshape
)
.
astype
(
dtype
)
data
=
np
.
random
.
uniform
(
size
=
dshape
)
.
astype
(
dtype
)
if
method
==
"NEAREST_NEIGHBOR"
:
if
method
==
"NEAREST_NEIGHBOR"
:
ref
=
topi
.
testing
.
upsampling_python
(
data
,
scale
,
layout
)
ref
=
topi
.
testing
.
upsampling_python
(
data
,
(
scale
,
scale
)
,
layout
)
else
:
else
:
ref
=
topi
.
testing
.
bilinear_resize_python
(
data
,
(
h
*
scale
,
w
*
scale
),
layout
)
ref
=
topi
.
testing
.
bilinear_resize_python
(
data
,
(
h
*
scale
,
w
*
scale
),
layout
)
for
target
,
ctx
in
ctx_list
():
for
target
,
ctx
in
ctx_list
():
...
...
tests/python/relay/test_op_level5.py
View file @
a8275bdb
...
@@ -48,7 +48,7 @@ def test_resize():
...
@@ -48,7 +48,7 @@ def test_resize():
if
method
==
"BILINEAR"
:
if
method
==
"BILINEAR"
:
ref_res
=
topi
.
testing
.
bilinear_resize_python
(
x_data
,
size
,
layout
)
ref_res
=
topi
.
testing
.
bilinear_resize_python
(
x_data
,
size
,
layout
)
else
:
else
:
ref_res
=
topi
.
testing
.
upsampling_python
(
x_data
,
scale
,
layout
)
ref_res
=
topi
.
testing
.
upsampling_python
(
x_data
,
(
scale
,
scale
)
,
layout
)
x
=
relay
.
var
(
"x"
,
relay
.
TensorType
(
dshape
,
"float32"
))
x
=
relay
.
var
(
"x"
,
relay
.
TensorType
(
dshape
,
"float32"
))
z
=
relay
.
image
.
resize
(
x
,
size
,
layout
,
method
,
False
)
z
=
relay
.
image
.
resize
(
x
,
size
,
layout
,
method
,
False
)
assert
"size="
in
z
.
astext
()
assert
"size="
in
z
.
astext
()
...
...
topi/include/topi/image/resize.h
View file @
a8275bdb
...
@@ -101,15 +101,12 @@ inline Tensor resize_nearest_neighbor_nhwc(const Tensor& input,
...
@@ -101,15 +101,12 @@ inline Tensor resize_nearest_neighbor_nhwc(const Tensor& input,
out_shape
.
push_back
(
shape
[
1
]);
out_shape
.
push_back
(
shape
[
1
]);
out_shape
.
push_back
(
input
->
shape
[
3
]);
out_shape
.
push_back
(
input
->
shape
[
3
]);
Expr
h_ratio
=
shape
[
0
]
/
input
->
shape
[
1
];
Expr
w_ratio
=
shape
[
1
]
/
input
->
shape
[
2
];
return
compute
(
return
compute
(
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
Array
<
Expr
>
idx
;
Array
<
Expr
>
idx
;
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
1
]
/
h_ratio
);
idx
.
push_back
(
indices
[
1
]
*
input
->
shape
[
1
]
/
shape
[
0
]
);
idx
.
push_back
(
indices
[
2
]
/
w_ratio
);
idx
.
push_back
(
indices
[
2
]
*
input
->
shape
[
2
]
/
shape
[
1
]
);
idx
.
push_back
(
indices
[
3
]);
idx
.
push_back
(
indices
[
3
]);
return
input
(
idx
);
return
input
(
idx
);
...
@@ -138,16 +135,13 @@ inline Tensor resize_nearest_neighbor_nchw(const Tensor& input,
...
@@ -138,16 +135,13 @@ inline Tensor resize_nearest_neighbor_nchw(const Tensor& input,
out_shape
.
push_back
(
shape
[
0
]);
out_shape
.
push_back
(
shape
[
0
]);
out_shape
.
push_back
(
shape
[
1
]);
out_shape
.
push_back
(
shape
[
1
]);
Expr
h_ratio
=
shape
[
0
]
/
input
->
shape
[
2
];
Expr
w_ratio
=
shape
[
1
]
/
input
->
shape
[
3
];
return
compute
(
return
compute
(
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
Array
<
Expr
>
idx
;
Array
<
Expr
>
idx
;
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
1
]);
idx
.
push_back
(
indices
[
1
]);
idx
.
push_back
(
indices
[
2
]
/
h_ratio
);
idx
.
push_back
(
indices
[
2
]
*
input
->
shape
[
2
]
/
shape
[
0
]
);
idx
.
push_back
(
indices
[
3
]
/
w_ratio
);
idx
.
push_back
(
indices
[
3
]
*
input
->
shape
[
3
]
/
shape
[
1
]
);
return
input
(
idx
);
return
input
(
idx
);
},
name
,
tag
);
},
name
,
tag
);
...
@@ -176,16 +170,13 @@ inline Tensor resize_nearest_neighbor_nchwc(const Tensor& input,
...
@@ -176,16 +170,13 @@ inline Tensor resize_nearest_neighbor_nchwc(const Tensor& input,
out_shape
.
push_back
(
shape
[
1
]);
out_shape
.
push_back
(
shape
[
1
]);
out_shape
.
push_back
(
input
->
shape
[
4
]);
out_shape
.
push_back
(
input
->
shape
[
4
]);
Expr
h_ratio
=
shape
[
0
]
/
input
->
shape
[
2
];
Expr
w_ratio
=
shape
[
1
]
/
input
->
shape
[
3
];
return
compute
(
return
compute
(
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
out_shape
,
[
&
](
const
Array
<
Var
>&
indices
)
{
Array
<
Expr
>
idx
;
Array
<
Expr
>
idx
;
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
0
]);
idx
.
push_back
(
indices
[
1
]);
idx
.
push_back
(
indices
[
1
]);
idx
.
push_back
(
indices
[
2
]
/
h_ratio
);
idx
.
push_back
(
indices
[
2
]
*
input
->
shape
[
2
]
/
shape
[
0
]
);
idx
.
push_back
(
indices
[
3
]
/
w_ratio
);
idx
.
push_back
(
indices
[
3
]
*
input
->
shape
[
3
]
/
shape
[
1
]
);
idx
.
push_back
(
indices
[
4
]);
idx
.
push_back
(
indices
[
4
]);
return
input
(
idx
);
return
input
(
idx
);
...
...
topi/python/topi/nn/upsampling.py
View file @
a8275bdb
...
@@ -53,5 +53,4 @@ def upsampling(data, scale, layout="NCHW", method='NEAREST_NEIGHBOR'):
...
@@ -53,5 +53,4 @@ def upsampling(data, scale, layout="NCHW", method='NEAREST_NEIGHBOR'):
out_shape
=
(
simplify
(
data
.
shape
[
1
]
*
scale
),
simplify
(
data
.
shape
[
2
]
*
scale
))
out_shape
=
(
simplify
(
data
.
shape
[
1
]
*
scale
),
simplify
(
data
.
shape
[
2
]
*
scale
))
else
:
else
:
raise
ValueError
(
"not support this layout {} yet"
.
format
(
layout
))
raise
ValueError
(
"not support this layout {} yet"
.
format
(
layout
))
return
topi
.
cpp
.
nn
.
upsampling
(
data
,
out_shape
,
layout
,
method
)
return
topi
.
cpp
.
nn
.
upsampling
(
data
,
out_shape
,
layout
,
method
)
topi/python/topi/testing/upsampling_python.py
View file @
a8275bdb
...
@@ -16,25 +16,35 @@
...
@@ -16,25 +16,35 @@
# under the License.
# under the License.
# pylint: disable=invalid-name, line-too-long, unused-variable, too-many-locals
# pylint: disable=invalid-name, line-too-long, unused-variable, too-many-locals
"""Upsampling in python"""
"""Upsampling in python"""
import
math
import
numpy
as
np
import
numpy
as
np
def
upsample_nearest
(
arr
,
scale
):
def
upsample_nearest
(
arr
,
scale
):
""" Populate the array by scale factor"""
""" Populate the array by scale factor"""
return
arr
.
repeat
(
scale
,
axis
=
0
)
.
repeat
(
scale
,
axis
=
1
)
h
,
w
=
arr
.
shape
out_h
=
math
.
floor
(
h
*
scale
[
0
])
out_w
=
math
.
floor
(
w
*
scale
[
1
])
out
=
np
.
empty
((
out_h
,
out_w
))
for
y
in
range
(
out_h
):
for
x
in
range
(
out_w
):
in_y
=
math
.
floor
(
y
/
scale
[
0
])
in_x
=
math
.
floor
(
x
/
scale
[
1
])
out
[
y
,
x
]
=
arr
[
in_y
,
in_x
]
return
out
def
upsampling_python
(
data
,
scale
,
layout
=
'NCHW'
):
def
upsampling_python
(
data
,
scale
,
layout
=
'NCHW'
):
""" Python version of scaling using nearest neighbour """
""" Python version of scaling using nearest neighbour """
ishape
=
data
.
shape
ishape
=
data
.
shape
if
layout
==
'NCHW'
:
if
layout
==
'NCHW'
:
oshape
=
(
ishape
[
0
],
ishape
[
1
],
ishape
[
2
]
*
scale
,
ishape
[
3
]
*
scale
)
oshape
=
(
ishape
[
0
],
ishape
[
1
],
math
.
floor
(
ishape
[
2
]
*
scale
[
0
]),
math
.
floor
(
ishape
[
3
]
*
scale
[
1
])
)
output_np
=
np
.
zeros
(
oshape
,
dtype
=
data
.
dtype
)
output_np
=
np
.
zeros
(
oshape
,
dtype
=
data
.
dtype
)
for
b
in
range
(
oshape
[
0
]):
for
b
in
range
(
oshape
[
0
]):
for
c
in
range
(
oshape
[
1
]):
for
c
in
range
(
oshape
[
1
]):
output_np
[
b
,
c
,
:,
:]
=
upsample_nearest
(
data
[
b
,
c
,
:,
:],
scale
)
output_np
[
b
,
c
,
:,
:]
=
upsample_nearest
(
data
[
b
,
c
,
:,
:],
scale
)
return
output_np
return
output_np
if
layout
==
'NHWC'
:
if
layout
==
'NHWC'
:
oshape
=
(
ishape
[
0
],
ishape
[
1
]
*
scale
,
ishape
[
1
]
*
scale
,
ishape
[
3
])
oshape
=
(
ishape
[
0
],
math
.
floor
(
ishape
[
1
]
*
scale
[
0
]),
math
.
floor
(
ishape
[
1
]
*
scale
[
1
])
,
ishape
[
3
])
output_np
=
np
.
zeros
(
oshape
,
dtype
=
data
.
dtype
)
output_np
=
np
.
zeros
(
oshape
,
dtype
=
data
.
dtype
)
for
b
in
range
(
oshape
[
0
]):
for
b
in
range
(
oshape
[
0
]):
for
c
in
range
(
oshape
[
3
]):
for
c
in
range
(
oshape
[
3
]):
...
...
topi/tests/python/test_topi_resize.py
View file @
a8275bdb
...
@@ -23,8 +23,7 @@ import math
...
@@ -23,8 +23,7 @@ import math
from
common
import
get_all_backend
from
common
import
get_all_backend
def
verify_bilinear_scale
(
batch
,
in_channel
,
in_height
,
in_width
,
out_height
,
out_width
,
layout
=
'NCHW'
,
align_corners
=
False
):
def
verify_resize
(
batch
,
in_channel
,
in_height
,
in_width
,
out_height
,
out_width
,
layout
=
'NCHW'
,
align_corners
=
False
,
method
=
"BILINEAR"
):
if
layout
==
'NCHW'
:
if
layout
==
'NCHW'
:
A
=
tvm
.
placeholder
((
batch
,
in_channel
,
in_height
,
in_width
),
name
=
'A'
,
dtype
=
'float32'
)
A
=
tvm
.
placeholder
((
batch
,
in_channel
,
in_height
,
in_width
),
name
=
'A'
,
dtype
=
'float32'
)
dtype
=
A
.
dtype
dtype
=
A
.
dtype
...
@@ -39,9 +38,14 @@ def verify_bilinear_scale(batch, in_channel, in_height, in_width, out_height, ou
...
@@ -39,9 +38,14 @@ def verify_bilinear_scale(batch, in_channel, in_height, in_width, out_height, ou
raise
NotImplementedError
(
raise
NotImplementedError
(
'Layout not supported {} '
.
format
(
layout
))
'Layout not supported {} '
.
format
(
layout
))
B
=
topi
.
image
.
resize
(
A
,
(
out_height
,
out_width
),
layout
=
layout
,
align_corners
=
align_corners
)
B
=
topi
.
image
.
resize
(
A
,
(
out_height
,
out_width
),
layout
=
layout
,
align_corners
=
align_corners
,
method
=
method
)
b_np
=
topi
.
testing
.
bilinear_resize_python
(
a_np
,
(
out_height
,
out_width
),
layout
,
align_corners
)
if
method
==
"BILINEAR"
:
b_np
=
topi
.
testing
.
bilinear_resize_python
(
a_np
,
(
out_height
,
out_width
),
layout
,
align_corners
)
else
:
scale_h
=
out_height
/
in_height
scale_w
=
out_width
/
in_width
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
(
scale_h
,
scale_w
),
layout
)
def
check_device
(
device
):
def
check_device
(
device
):
ctx
=
tvm
.
context
(
device
,
0
)
ctx
=
tvm
.
context
(
device
,
0
)
...
@@ -61,15 +65,19 @@ def verify_bilinear_scale(batch, in_channel, in_height, in_width, out_height, ou
...
@@ -61,15 +65,19 @@ def verify_bilinear_scale(batch, in_channel, in_height, in_width, out_height, ou
for
device
in
get_all_backend
():
for
device
in
get_all_backend
():
check_device
(
device
)
check_device
(
device
)
def
test_resize
():
def
test_resize
():
# Scale NCHW
# Scale NCHW
verify_
bilinear_scal
e
(
4
,
16
,
32
,
32
,
50
,
50
,
'NCHW'
)
verify_
resiz
e
(
4
,
16
,
32
,
32
,
50
,
50
,
'NCHW'
)
# Scale NCHW + Align Corners
# Scale NCHW + Align Corners
verify_
bilinear_scal
e
(
6
,
32
,
64
,
64
,
20
,
20
,
'NCHW'
,
True
)
verify_
resiz
e
(
6
,
32
,
64
,
64
,
20
,
20
,
'NCHW'
,
True
)
# Scale NHWC
# Scale NHWC
verify_
bilinear_scal
e
(
4
,
16
,
32
,
32
,
50
,
50
,
"NHWC"
)
verify_
resiz
e
(
4
,
16
,
32
,
32
,
50
,
50
,
"NHWC"
)
# Scale NHWC + Align Corners
# Scale NHWC + Align Corners
verify_bilinear_scale
(
6
,
32
,
64
,
64
,
20
,
20
,
"NHWC"
,
True
)
verify_resize
(
6
,
32
,
64
,
64
,
20
,
20
,
"NHWC"
,
True
)
# Nearest + Fractional
verify_resize
(
4
,
16
,
32
,
32
,
50
,
50
,
'NCHW'
,
method
=
"NEAREST_NEIGHBOR"
)
verify_resize
(
4
,
16
,
32
,
32
,
50
,
50
,
'NHWC'
,
method
=
"NEAREST_NEIGHBOR"
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
test_resize
()
test_resize
()
topi/tests/python/test_topi_upsampling.py
View file @
a8275bdb
...
@@ -46,7 +46,7 @@ def verify_upsampling(batch, in_channel, in_height, in_width, scale, layout='NCH
...
@@ -46,7 +46,7 @@ def verify_upsampling(batch, in_channel, in_height, in_width, scale, layout='NCH
out_size
=
(
in_height
*
scale
,
in_width
*
scale
)
out_size
=
(
in_height
*
scale
,
in_width
*
scale
)
b_np
=
topi
.
testing
.
bilinear_resize_python
(
a_np
,
out_size
,
layout
)
b_np
=
topi
.
testing
.
bilinear_resize_python
(
a_np
,
out_size
,
layout
)
else
:
else
:
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
scale
,
layout
)
b_np
=
topi
.
testing
.
upsampling_python
(
a_np
,
(
scale
,
scale
)
,
layout
)
def
check_device
(
device
):
def
check_device
(
device
):
ctx
=
tvm
.
context
(
device
,
0
)
ctx
=
tvm
.
context
(
device
,
0
)
...
...
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