Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
1e56489a
Commit
1e56489a
authored
Jul 18, 2019
by
Khalique
Browse files
work on onehot implementation
parent
49e65e08
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
0 deletions
+27
-0
src/tf/tf.cpp
src/tf/tf.cpp
+27
-0
No files found.
src/tf/tf.cpp
View file @
1e56489a
...
...
@@ -173,6 +173,7 @@ struct tf_parser
add_mem_op
(
"MatMul"
,
&
tf_parser
::
parse_matmul
,
false
);
add_mem_op
(
"MaxPool"
,
&
tf_parser
::
parse_pooling
);
add_mem_op
(
"Mean"
,
&
tf_parser
::
parse_mean
);
add_mem_op
(
"OneHot"
,
&
tf_parser
::
parse_onehot
,
false
);
add_mem_op
(
"Pack"
,
&
tf_parser
::
parse_pack
,
false
);
add_mem_op
(
"Pad"
,
&
tf_parser
::
parse_pad
);
add_mem_op
(
"Reshape"
,
&
tf_parser
::
parse_reshape
,
false
);
...
...
@@ -563,6 +564,32 @@ struct tf_parser
MIGRAPHX_THROW
(
"MIGraphX does not support mean outside of GlobalAvgPool transformation"
);
}
instruction_ref
parse_onehot
(
const
std
::
string
&
,
attribute_map
attributes
,
std
::
vector
<
instruction_ref
>
args
)
{
auto
indices
=
args
[
0
]
->
eval
().
get
<
int64_t
>
().
to_vector
();
int
depth
=
args
[
1
]
->
eval
().
at
<
int32_t
>
();
int
axis
=
-
1
;
size_t
num_indices
=
indices
.
size
();
float
on_value
=
args
[
2
]
->
eval
().
at
<
float
>
();
float
off_value
=
args
[
3
]
->
eval
().
at
<
float
>
();
if
(
contains
(
attributes
,
"axis"
))
axis
=
attributes
.
at
(
"axis"
).
i
();
if
(
axis
==
-
1
)
{
shape
s
{
shape
::
float_type
,
{
num_indices
,
static_cast
<
size_t
>
(
depth
)}};
std
::
vector
<
float
>
output
(
num_indices
*
depth
);
std
::
fill
(
output
.
begin
(),
output
.
end
(),
off_value
);
for
(
size_t
i
=
0
;
i
<
num_indices
;
i
++
)
{
if
(
indices
[
i
]
>=
0
and
indices
[
i
]
<
num_indices
)
output
[
depth
*
i
+
indices
[
i
]]
=
on_value
;
}
return
prog
.
add_literal
(
s
,
output
);
}
MIGRAPHX_THROW
(
"MIGraphX does not support axis != -1"
);
}
instruction_ref
parse_pack
(
const
std
::
string
&
,
const
attribute_map
&
attributes
,
std
::
vector
<
instruction_ref
>
args
)
...
...
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