Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
Mace
提交
ae7a300a
Mace
项目概览
Xiaomi
/
Mace
通知
106
Star
40
Fork
27
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mace
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ae7a300a
编写于
2月 08, 2018
作者:
L
Liangliang He
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'half-type' into 'master'
Support half-type const tensor. See merge request !234
上级
07f8ff18
822f7a4d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
1 deletion
+44
-1
mace/core/serializer.cc
mace/core/serializer.cc
+4
-0
mace/ops/buffer_to_image_test.cc
mace/ops/buffer_to_image_test.cc
+40
-1
未找到文件。
mace/core/serializer.cc
浏览文件 @
ae7a300a
...
...
@@ -23,6 +23,10 @@ unique_ptr<Tensor> Serializer::Deserialize(const ConstTensor &proto,
tensor
->
Resize
(
dims
);
switch
(
proto
.
data_type
())
{
case
DT_HALF
:
tensor
->
Copy
<
half
>
(
reinterpret_cast
<
const
half
*>
(
proto
.
data
()),
proto
.
data_size
());
break
;
case
DT_FLOAT
:
tensor
->
Copy
<
float
>
(
reinterpret_cast
<
const
float
*>
(
proto
.
data
()),
proto
.
data_size
());
...
...
mace/ops/buffer_to_image_test.cc
浏览文件 @
ae7a300a
...
...
@@ -4,7 +4,6 @@
#include "gtest/gtest.h"
#include "mace/ops/ops_test_util.h"
#include "mace/kernels/opencl/helper.h"
using
namespace
mace
;
...
...
@@ -130,3 +129,43 @@ void TestDiffTypeBidirectionTransform(const int type, const std::vector<index_t>
TEST
(
BufferToImageTest
,
ArgFloatToHalfSmall
)
{
TestDiffTypeBidirectionTransform
<
DeviceType
::
OPENCL
,
half
>
(
kernels
::
ARGUMENT
,
{
11
});
}
template
<
DeviceType
D
,
typename
T
>
void
TestStringHalfBidirectionTransform
(
const
int
type
,
const
std
::
vector
<
index_t
>
&
input_shape
,
const
unsigned
char
*
input_data
)
{
OpsTestNet
net
;
OpDefBuilder
(
"BufferToImage"
,
"BufferToImageTest"
)
.
Input
(
"Input"
)
.
Output
(
"B2IOutput"
)
.
AddIntArg
(
"buffer_type"
,
type
)
.
AddIntArg
(
"T"
,
DataTypeToEnum
<
T
>::
value
)
.
Finalize
(
net
.
NewOperatorDef
());
const
half
*
h_data
=
reinterpret_cast
<
const
half
*>
(
input_data
);
net
.
AddInputFromArray
<
D
,
half
>
(
"Input"
,
input_shape
,
std
::
vector
<
half
>
(
h_data
,
h_data
+
2
));
// Run
net
.
RunOp
(
D
);
OpDefBuilder
(
"ImageToBuffer"
,
"ImageToBufferTest"
)
.
Input
(
"B2IOutput"
)
.
Output
(
"I2BOutput"
)
.
AddIntArg
(
"buffer_type"
,
type
)
.
AddIntArg
(
"T"
,
DataTypeToEnum
<
T
>::
value
)
.
Finalize
(
net
.
NewOperatorDef
());
// Run
net
.
RunOp
(
D
);
// Check
ExpectTensorNear
<
half
>
(
*
net
.
GetOutput
(
"Input"
),
*
net
.
GetOutput
(
"I2BOutput"
),
1e-2
);
}
TEST
(
BufferToImageTest
,
ArgStringHalfToHalfSmall
)
{
const
unsigned
char
input_data
[]
=
{
0xCD
,
0x3C
,
0x33
,
0x40
,};
TestStringHalfBidirectionTransform
<
DeviceType
::
OPENCL
,
half
>
(
kernels
::
ARGUMENT
,
{
2
},
input_data
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录