Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle-Lite
提交
c754a38f
P
Paddle-Lite
项目概览
PaddlePaddle
/
Paddle-Lite
通知
331
Star
4
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
271
列表
看板
标记
里程碑
合并请求
78
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle-Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
271
Issue
271
列表
看板
标记
里程碑
合并请求
78
合并请求
78
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c754a38f
编写于
3月 31, 2020
作者:
H
huzhiqiang
提交者:
GitHub
3月 31, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[operator] add InferShapeImpl method (#3294)
上级
50638e96
变更
243
展开全部
显示空白变更内容
内联
并排
Showing
243 changed file
with
517 addition
and
502 deletion
+517
-502
lite/core/op_lite.cc
lite/core/op_lite.cc
+55
-0
lite/core/op_lite.h
lite/core/op_lite.h
+14
-6
lite/core/program.cc
lite/core/program.cc
+1
-2
lite/operators/activation_grad_ops.cc
lite/operators/activation_grad_ops.cc
+1
-1
lite/operators/activation_grad_ops.h
lite/operators/activation_grad_ops.h
+1
-1
lite/operators/activation_ops.cc
lite/operators/activation_ops.cc
+1
-1
lite/operators/activation_ops.h
lite/operators/activation_ops.h
+1
-1
lite/operators/affine_channel_op.cc
lite/operators/affine_channel_op.cc
+1
-1
lite/operators/affine_channel_op.h
lite/operators/affine_channel_op.h
+1
-1
lite/operators/anchor_generator_op.cc
lite/operators/anchor_generator_op.cc
+1
-1
lite/operators/anchor_generator_op.h
lite/operators/anchor_generator_op.h
+1
-1
lite/operators/argmax_op.cc
lite/operators/argmax_op.cc
+1
-1
lite/operators/argmax_op.h
lite/operators/argmax_op.h
+1
-1
lite/operators/assign_op.cc
lite/operators/assign_op.cc
+1
-1
lite/operators/assign_op.h
lite/operators/assign_op.h
+1
-1
lite/operators/assign_value_op.cc
lite/operators/assign_value_op.cc
+1
-1
lite/operators/assign_value_op.h
lite/operators/assign_value_op.h
+1
-1
lite/operators/attention_padding_mask_op.cc
lite/operators/attention_padding_mask_op.cc
+1
-1
lite/operators/attention_padding_mask_op.h
lite/operators/attention_padding_mask_op.h
+1
-1
lite/operators/axpy_op.cc
lite/operators/axpy_op.cc
+1
-1
lite/operators/axpy_op.h
lite/operators/axpy_op.h
+1
-1
lite/operators/batch_norm_op.cc
lite/operators/batch_norm_op.cc
+1
-1
lite/operators/batch_norm_op.h
lite/operators/batch_norm_op.h
+1
-1
lite/operators/beam_search_decode_op.cc
lite/operators/beam_search_decode_op.cc
+1
-1
lite/operators/beam_search_decode_op.h
lite/operators/beam_search_decode_op.h
+1
-1
lite/operators/beam_search_op.cc
lite/operators/beam_search_op.cc
+1
-1
lite/operators/beam_search_op.h
lite/operators/beam_search_op.h
+1
-1
lite/operators/box_clip_op.cc
lite/operators/box_clip_op.cc
+1
-1
lite/operators/box_clip_op.h
lite/operators/box_clip_op.h
+1
-1
lite/operators/box_coder_op.cc
lite/operators/box_coder_op.cc
+1
-1
lite/operators/box_coder_op.h
lite/operators/box_coder_op.h
+1
-1
lite/operators/calib_op.cc
lite/operators/calib_op.cc
+1
-1
lite/operators/calib_op.h
lite/operators/calib_op.h
+1
-1
lite/operators/cast_op.cc
lite/operators/cast_op.cc
+1
-1
lite/operators/cast_op.h
lite/operators/cast_op.h
+1
-1
lite/operators/collect_fpn_proposals_op.cc
lite/operators/collect_fpn_proposals_op.cc
+1
-1
lite/operators/collect_fpn_proposals_op.h
lite/operators/collect_fpn_proposals_op.h
+1
-1
lite/operators/compare_op.cc
lite/operators/compare_op.cc
+1
-1
lite/operators/compare_op.h
lite/operators/compare_op.h
+1
-1
lite/operators/concat_op.cc
lite/operators/concat_op.cc
+1
-1
lite/operators/concat_op.h
lite/operators/concat_op.h
+1
-1
lite/operators/conditional_block_op.cc
lite/operators/conditional_block_op.cc
+1
-1
lite/operators/conditional_block_op.h
lite/operators/conditional_block_op.h
+1
-1
lite/operators/conv_op.cc
lite/operators/conv_op.cc
+1
-29
lite/operators/conv_op.h
lite/operators/conv_op.h
+1
-3
lite/operators/conv_transpose_op.cc
lite/operators/conv_transpose_op.cc
+1
-1
lite/operators/conv_transpose_op.h
lite/operators/conv_transpose_op.h
+1
-1
lite/operators/crf_decoding_op.cc
lite/operators/crf_decoding_op.cc
+1
-1
lite/operators/crf_decoding_op.h
lite/operators/crf_decoding_op.h
+1
-1
lite/operators/crop_op.cc
lite/operators/crop_op.cc
+1
-1
lite/operators/crop_op.h
lite/operators/crop_op.h
+1
-1
lite/operators/decode_bboxes_op.cc
lite/operators/decode_bboxes_op.cc
+1
-1
lite/operators/decode_bboxes_op.h
lite/operators/decode_bboxes_op.h
+1
-1
lite/operators/density_prior_box_op.cc
lite/operators/density_prior_box_op.cc
+1
-1
lite/operators/density_prior_box_op.h
lite/operators/density_prior_box_op.h
+1
-1
lite/operators/distribute_fpn_proposals_op.cc
lite/operators/distribute_fpn_proposals_op.cc
+1
-1
lite/operators/distribute_fpn_proposals_op.h
lite/operators/distribute_fpn_proposals_op.h
+1
-1
lite/operators/dropout_op.cc
lite/operators/dropout_op.cc
+1
-1
lite/operators/dropout_op.h
lite/operators/dropout_op.h
+1
-1
lite/operators/elementwise_grad_ops.cc
lite/operators/elementwise_grad_ops.cc
+1
-1
lite/operators/elementwise_grad_ops.h
lite/operators/elementwise_grad_ops.h
+1
-1
lite/operators/elementwise_ops.cc
lite/operators/elementwise_ops.cc
+2
-33
lite/operators/elementwise_ops.h
lite/operators/elementwise_ops.h
+2
-3
lite/operators/expand_op.cc
lite/operators/expand_op.cc
+1
-1
lite/operators/expand_op.h
lite/operators/expand_op.h
+1
-1
lite/operators/fake_channel_wise_dequantize_max_abs.h
lite/operators/fake_channel_wise_dequantize_max_abs.h
+1
-1
lite/operators/fake_dequantize_max_abs.h
lite/operators/fake_dequantize_max_abs.h
+1
-1
lite/operators/fake_quantize_dequantize_moving_avg_max_abs.h
lite/operators/fake_quantize_dequantize_moving_avg_max_abs.h
+1
-1
lite/operators/fake_quantize_moving_avg_max_abs.h
lite/operators/fake_quantize_moving_avg_max_abs.h
+1
-1
lite/operators/fake_quantize_range_abs_max.h
lite/operators/fake_quantize_range_abs_max.h
+1
-1
lite/operators/fc_op.cc
lite/operators/fc_op.cc
+1
-28
lite/operators/fc_op.h
lite/operators/fc_op.h
+1
-2
lite/operators/feed_op.cc
lite/operators/feed_op.cc
+1
-1
lite/operators/fetch_op.cc
lite/operators/fetch_op.cc
+1
-1
lite/operators/fill_constant_batch_size_like_op.cc
lite/operators/fill_constant_batch_size_like_op.cc
+1
-1
lite/operators/fill_constant_batch_size_like_op.h
lite/operators/fill_constant_batch_size_like_op.h
+1
-1
lite/operators/fill_constant_op.cc
lite/operators/fill_constant_op.cc
+1
-1
lite/operators/fill_constant_op.h
lite/operators/fill_constant_op.h
+1
-1
lite/operators/flatten_op.cc
lite/operators/flatten_op.cc
+3
-3
lite/operators/flatten_op.h
lite/operators/flatten_op.h
+2
-2
lite/operators/fusion_elementwise_activation_ops.cc
lite/operators/fusion_elementwise_activation_ops.cc
+2
-2
lite/operators/fusion_elementwise_activation_ops.h
lite/operators/fusion_elementwise_activation_ops.h
+2
-2
lite/operators/gather_op.cc
lite/operators/gather_op.cc
+1
-1
lite/operators/gather_op.h
lite/operators/gather_op.h
+1
-1
lite/operators/generate_proposals_op.cc
lite/operators/generate_proposals_op.cc
+1
-1
lite/operators/generate_proposals_op.h
lite/operators/generate_proposals_op.h
+1
-1
lite/operators/grid_sampler_op.cc
lite/operators/grid_sampler_op.cc
+1
-1
lite/operators/grid_sampler_op.h
lite/operators/grid_sampler_op.h
+1
-1
lite/operators/gru_op.cc
lite/operators/gru_op.cc
+1
-1
lite/operators/gru_op.h
lite/operators/gru_op.h
+1
-1
lite/operators/gru_unit_op.cc
lite/operators/gru_unit_op.cc
+1
-1
lite/operators/gru_unit_op.h
lite/operators/gru_unit_op.h
+1
-1
lite/operators/im2sequence_op.cc
lite/operators/im2sequence_op.cc
+1
-1
lite/operators/im2sequence_op.h
lite/operators/im2sequence_op.h
+1
-1
lite/operators/increment_op.cc
lite/operators/increment_op.cc
+1
-1
lite/operators/increment_op.h
lite/operators/increment_op.h
+1
-1
lite/operators/instance_norm_op.cc
lite/operators/instance_norm_op.cc
+1
-1
lite/operators/instance_norm_op.h
lite/operators/instance_norm_op.h
+1
-1
lite/operators/interpolate_op.cc
lite/operators/interpolate_op.cc
+1
-1
lite/operators/interpolate_op.h
lite/operators/interpolate_op.h
+1
-1
lite/operators/io_copy_op.cc
lite/operators/io_copy_op.cc
+1
-1
lite/operators/io_copy_op.h
lite/operators/io_copy_op.h
+1
-1
lite/operators/is_empty_op.cc
lite/operators/is_empty_op.cc
+1
-1
lite/operators/is_empty_op.h
lite/operators/is_empty_op.h
+1
-1
lite/operators/layer_norm_op.cc
lite/operators/layer_norm_op.cc
+1
-1
lite/operators/layer_norm_op.h
lite/operators/layer_norm_op.h
+1
-1
lite/operators/layout_op.cc
lite/operators/layout_op.cc
+1
-1
lite/operators/layout_op.h
lite/operators/layout_op.h
+1
-1
lite/operators/lod_reset_op.cc
lite/operators/lod_reset_op.cc
+1
-1
lite/operators/lod_reset_op.h
lite/operators/lod_reset_op.h
+1
-1
lite/operators/logical_op.cc
lite/operators/logical_op.cc
+2
-2
lite/operators/logical_op.h
lite/operators/logical_op.h
+2
-2
lite/operators/lookup_table_dequant_op.cc
lite/operators/lookup_table_dequant_op.cc
+1
-1
lite/operators/lookup_table_dequant_op.h
lite/operators/lookup_table_dequant_op.h
+1
-1
lite/operators/lookup_table_op.cc
lite/operators/lookup_table_op.cc
+1
-1
lite/operators/lookup_table_op.h
lite/operators/lookup_table_op.h
+1
-1
lite/operators/lookup_table_v2_op.cc
lite/operators/lookup_table_v2_op.cc
+1
-1
lite/operators/lookup_table_v2_op.h
lite/operators/lookup_table_v2_op.h
+1
-1
lite/operators/lrn_op.cc
lite/operators/lrn_op.cc
+1
-1
lite/operators/lrn_op.h
lite/operators/lrn_op.h
+1
-1
lite/operators/lstm_op.cc
lite/operators/lstm_op.cc
+1
-1
lite/operators/lstm_op.h
lite/operators/lstm_op.h
+1
-1
lite/operators/match_matrix_tensor_op.cc
lite/operators/match_matrix_tensor_op.cc
+1
-1
lite/operators/match_matrix_tensor_op.h
lite/operators/match_matrix_tensor_op.h
+1
-1
lite/operators/matmul_op.cc
lite/operators/matmul_op.cc
+1
-1
lite/operators/matmul_op.h
lite/operators/matmul_op.h
+1
-1
lite/operators/mean_grad_op.cc
lite/operators/mean_grad_op.cc
+1
-1
lite/operators/mean_grad_op.h
lite/operators/mean_grad_op.h
+1
-1
lite/operators/mean_op.cc
lite/operators/mean_op.cc
+1
-1
lite/operators/mean_op.h
lite/operators/mean_op.h
+1
-1
lite/operators/merge_lod_tensor_op.cc
lite/operators/merge_lod_tensor_op.cc
+1
-1
lite/operators/merge_lod_tensor_op.h
lite/operators/merge_lod_tensor_op.h
+1
-1
lite/operators/mul_grad_op.cc
lite/operators/mul_grad_op.cc
+1
-1
lite/operators/mul_grad_op.h
lite/operators/mul_grad_op.h
+1
-1
lite/operators/mul_op.cc
lite/operators/mul_op.cc
+1
-1
lite/operators/mul_op.h
lite/operators/mul_op.h
+1
-1
lite/operators/multiclass_nms_op.cc
lite/operators/multiclass_nms_op.cc
+1
-1
lite/operators/multiclass_nms_op.h
lite/operators/multiclass_nms_op.h
+1
-1
lite/operators/negative_op.cc
lite/operators/negative_op.cc
+1
-1
lite/operators/negative_op.h
lite/operators/negative_op.h
+1
-1
lite/operators/norm_op.cc
lite/operators/norm_op.cc
+1
-1
lite/operators/norm_op.h
lite/operators/norm_op.h
+1
-1
lite/operators/op_params.h
lite/operators/op_params.h
+188
-116
lite/operators/pad2d_op.cc
lite/operators/pad2d_op.cc
+1
-1
lite/operators/pad2d_op.h
lite/operators/pad2d_op.h
+1
-1
lite/operators/pool_op.cc
lite/operators/pool_op.cc
+1
-1
lite/operators/pool_op.h
lite/operators/pool_op.h
+1
-1
lite/operators/power_op.cc
lite/operators/power_op.cc
+1
-1
lite/operators/power_op.h
lite/operators/power_op.h
+1
-1
lite/operators/prior_box_op.cc
lite/operators/prior_box_op.cc
+1
-1
lite/operators/prior_box_op.h
lite/operators/prior_box_op.h
+1
-1
lite/operators/range_op.cc
lite/operators/range_op.cc
+1
-1
lite/operators/range_op.h
lite/operators/range_op.h
+1
-1
lite/operators/read_from_array_op.cc
lite/operators/read_from_array_op.cc
+1
-1
lite/operators/read_from_array_op.h
lite/operators/read_from_array_op.h
+1
-1
lite/operators/reduce_max_op.cc
lite/operators/reduce_max_op.cc
+1
-1
lite/operators/reduce_max_op.h
lite/operators/reduce_max_op.h
+1
-1
lite/operators/reduce_mean_op.cc
lite/operators/reduce_mean_op.cc
+1
-1
lite/operators/reduce_mean_op.h
lite/operators/reduce_mean_op.h
+1
-1
lite/operators/reduce_ops.cc
lite/operators/reduce_ops.cc
+1
-1
lite/operators/reduce_ops.h
lite/operators/reduce_ops.h
+1
-1
lite/operators/reduce_prod_op.cc
lite/operators/reduce_prod_op.cc
+1
-1
lite/operators/reduce_prod_op.h
lite/operators/reduce_prod_op.h
+1
-1
lite/operators/relu_op.cc
lite/operators/relu_op.cc
+1
-1
lite/operators/relu_op.h
lite/operators/relu_op.h
+1
-1
lite/operators/reshape_op.cc
lite/operators/reshape_op.cc
+3
-3
lite/operators/reshape_op.h
lite/operators/reshape_op.h
+2
-2
lite/operators/roi_align_op.cc
lite/operators/roi_align_op.cc
+1
-1
lite/operators/roi_align_op.h
lite/operators/roi_align_op.h
+1
-1
lite/operators/scale_op.cc
lite/operators/scale_op.cc
+1
-1
lite/operators/scale_op.h
lite/operators/scale_op.h
+1
-1
lite/operators/search_aligned_mat_mul_op.cc
lite/operators/search_aligned_mat_mul_op.cc
+1
-1
lite/operators/search_aligned_mat_mul_op.h
lite/operators/search_aligned_mat_mul_op.h
+1
-1
lite/operators/search_fc_op.cc
lite/operators/search_fc_op.cc
+1
-1
lite/operators/search_fc_op.h
lite/operators/search_fc_op.h
+1
-1
lite/operators/search_grnn_op.cc
lite/operators/search_grnn_op.cc
+1
-1
lite/operators/search_grnn_op.h
lite/operators/search_grnn_op.h
+1
-1
lite/operators/search_group_padding_op.cc
lite/operators/search_group_padding_op.cc
+1
-1
lite/operators/search_group_padding_op.h
lite/operators/search_group_padding_op.h
+1
-1
lite/operators/search_seq_depadding_op.cc
lite/operators/search_seq_depadding_op.cc
+1
-1
lite/operators/search_seq_depadding_op.h
lite/operators/search_seq_depadding_op.h
+1
-1
lite/operators/search_seq_fc_op.cc
lite/operators/search_seq_fc_op.cc
+1
-1
lite/operators/search_seq_fc_op.h
lite/operators/search_seq_fc_op.h
+1
-1
lite/operators/search_seq_softmax_op.cc
lite/operators/search_seq_softmax_op.cc
+1
-1
lite/operators/search_seq_softmax_op.h
lite/operators/search_seq_softmax_op.h
+1
-1
lite/operators/sequence_arithmetic_op.cc
lite/operators/sequence_arithmetic_op.cc
+1
-1
lite/operators/sequence_arithmetic_op.h
lite/operators/sequence_arithmetic_op.h
+1
-1
lite/operators/sequence_concat_op.cc
lite/operators/sequence_concat_op.cc
+1
-1
lite/operators/sequence_concat_op.h
lite/operators/sequence_concat_op.h
+1
-1
lite/operators/sequence_conv_op.cc
lite/operators/sequence_conv_op.cc
+1
-1
lite/operators/sequence_conv_op.h
lite/operators/sequence_conv_op.h
+1
-1
lite/operators/sequence_expand_as_op.cc
lite/operators/sequence_expand_as_op.cc
+1
-1
lite/operators/sequence_expand_as_op.h
lite/operators/sequence_expand_as_op.h
+1
-1
lite/operators/sequence_expand_op.cc
lite/operators/sequence_expand_op.cc
+1
-1
lite/operators/sequence_expand_op.h
lite/operators/sequence_expand_op.h
+1
-1
lite/operators/sequence_pool_concat_op.cc
lite/operators/sequence_pool_concat_op.cc
+1
-1
lite/operators/sequence_pool_concat_op.h
lite/operators/sequence_pool_concat_op.h
+1
-1
lite/operators/sequence_pool_op.cc
lite/operators/sequence_pool_op.cc
+1
-1
lite/operators/sequence_pool_op.h
lite/operators/sequence_pool_op.h
+1
-1
lite/operators/sequence_reshape_op.cc
lite/operators/sequence_reshape_op.cc
+1
-1
lite/operators/sequence_reshape_op.h
lite/operators/sequence_reshape_op.h
+1
-1
lite/operators/sequence_reverse_op.cc
lite/operators/sequence_reverse_op.cc
+1
-1
lite/operators/sequence_reverse_op.h
lite/operators/sequence_reverse_op.h
+1
-1
lite/operators/sequence_softmax_op.cc
lite/operators/sequence_softmax_op.cc
+1
-1
lite/operators/sequence_softmax_op.h
lite/operators/sequence_softmax_op.h
+1
-1
lite/operators/sequence_topk_avg_pooling_op.cc
lite/operators/sequence_topk_avg_pooling_op.cc
+1
-1
lite/operators/sequence_topk_avg_pooling_op.h
lite/operators/sequence_topk_avg_pooling_op.h
+1
-1
lite/operators/sgd_op.cc
lite/operators/sgd_op.cc
+1
-1
lite/operators/sgd_op.h
lite/operators/sgd_op.h
+1
-1
lite/operators/shape_op.cc
lite/operators/shape_op.cc
+1
-1
lite/operators/shape_op.h
lite/operators/shape_op.h
+1
-1
lite/operators/shuffle_channel_op.cc
lite/operators/shuffle_channel_op.cc
+1
-1
lite/operators/shuffle_channel_op.h
lite/operators/shuffle_channel_op.h
+1
-1
lite/operators/slice_op.cc
lite/operators/slice_op.cc
+1
-1
lite/operators/slice_op.h
lite/operators/slice_op.h
+1
-1
lite/operators/softmax_op.cc
lite/operators/softmax_op.cc
+1
-29
lite/operators/softmax_op.h
lite/operators/softmax_op.h
+1
-2
lite/operators/split_lod_tensor_op.cc
lite/operators/split_lod_tensor_op.cc
+1
-1
lite/operators/split_lod_tensor_op.h
lite/operators/split_lod_tensor_op.h
+1
-1
lite/operators/split_op.cc
lite/operators/split_op.cc
+1
-1
lite/operators/split_op.h
lite/operators/split_op.h
+1
-1
lite/operators/squeeze_op.cc
lite/operators/squeeze_op.cc
+3
-3
lite/operators/squeeze_op.h
lite/operators/squeeze_op.h
+2
-2
lite/operators/stack_op.cc
lite/operators/stack_op.cc
+1
-1
lite/operators/stack_op.h
lite/operators/stack_op.h
+1
-1
lite/operators/subgraph_op.cc
lite/operators/subgraph_op.cc
+1
-1
lite/operators/subgraph_op.h
lite/operators/subgraph_op.h
+1
-1
lite/operators/topk_op.cc
lite/operators/topk_op.cc
+1
-1
lite/operators/topk_op.h
lite/operators/topk_op.h
+1
-1
lite/operators/transpose_op.cc
lite/operators/transpose_op.cc
+2
-2
lite/operators/transpose_op.h
lite/operators/transpose_op.h
+2
-2
lite/operators/uniform_random_op.cc
lite/operators/uniform_random_op.cc
+1
-1
lite/operators/uniform_random_op.h
lite/operators/uniform_random_op.h
+1
-1
lite/operators/unsqueeze_op.cc
lite/operators/unsqueeze_op.cc
+3
-3
lite/operators/unsqueeze_op.h
lite/operators/unsqueeze_op.h
+2
-2
lite/operators/var_conv_2d_op.cc
lite/operators/var_conv_2d_op.cc
+1
-1
lite/operators/var_conv_2d_op.h
lite/operators/var_conv_2d_op.h
+1
-1
lite/operators/while_op.cc
lite/operators/while_op.cc
+1
-1
lite/operators/while_op.h
lite/operators/while_op.h
+1
-1
lite/operators/write_to_array_op.cc
lite/operators/write_to_array_op.cc
+1
-1
lite/operators/write_to_array_op.h
lite/operators/write_to_array_op.h
+1
-1
lite/operators/yolo_box_op.cc
lite/operators/yolo_box_op.cc
+1
-1
lite/operators/yolo_box_op.h
lite/operators/yolo_box_op.h
+1
-1
未找到文件。
lite/core/op_lite.cc
浏览文件 @
c754a38f
...
@@ -22,6 +22,61 @@
...
@@ -22,6 +22,61 @@
namespace
paddle
{
namespace
paddle
{
namespace
lite
{
namespace
lite
{
bool
OpLite
::
InferShape
()
{
// if input_tensor_ptrs and output_tensor_ptrs are overloaded in param_
// InferShapeByMemoryInternal will be applied.
if
(
param_
.
input_tensor_ptrs
()
&&
param_
.
output_tensor_ptrs
())
{
return
this
->
InferShapeWithCache
();
}
else
{
// otherwise, InferShapeImpl is applied directly.
return
this
->
InferShapeImpl
();
}
}
bool
OpLite
::
InferShapeWithCache
()
{
// 1. Get vector of current input tensors
auto
*
current_inputs
=
param_
.
input_tensor_ptrs
();
// 2. Get hash value of current inputs shape and lod
size_t
new_hash
=
0
;
for
(
auto
iter
=
current_inputs
->
begin
();
iter
!=
current_inputs
->
end
();
iter
++
)
{
// combined dims value into new_hash value.
auto
&
element_dims
=
(
*
iter
)
->
dims
();
for
(
int
i
=
0
;
i
<
element_dims
.
size
();
i
++
)
{
new_hash
=
lite
::
hash_combine
(
new_hash
,
static_cast
<
int
>
(
element_dims
[
i
]));
}
// combine lod value into new_hash valud.
auto
&
emement_lods
=
(
*
iter
)
->
lod
();
for
(
auto
lod_iter
=
emement_lods
.
begin
();
lod_iter
!=
emement_lods
.
end
();
lod_iter
++
)
{
for
(
int
i
=
0
;
i
<
lod_iter
->
size
();
i
++
)
{
new_hash
=
lite
::
hash_combine
(
new_hash
,
static_cast
<
int
>
(
lod_iter
->
at
(
i
)));
}
}
}
// 3. infer shapes of output tensors
if
(
new_hash
==
io_shape_lod_hash_
&&
new_hash
!=
0
)
{
// if current hash value is consistent with io_shape_lod_hash_,
// previous outputs shape and lod are reused.
auto
*
current_outputs
=
param_
.
output_tensor_ptrs
();
for
(
int
i
=
0
;
i
<
current_outputs
->
size
();
i
++
)
{
current_outputs
->
at
(
i
)
->
Resize
(
last_output_shapes
[
i
]);
current_outputs
->
at
(
i
)
->
set_lod
(
last_output_lods
[
i
]);
}
}
else
{
// otherwise, current hash value is changed, InferShapeImpl will apply.
io_shape_lod_hash_
=
new_hash
;
this
->
InferShapeImpl
();
auto
*
current_outputs
=
param_
.
output_tensor_ptrs
();
for
(
int
i
=
0
;
i
<
current_outputs
->
size
();
i
++
)
{
last_output_shapes
[
i
]
=
current_outputs
->
at
(
i
)
->
dims
();
last_output_lods
[
i
]
=
current_outputs
->
at
(
i
)
->
lod
();
}
}
return
true
;
}
std
::
vector
<
std
::
unique_ptr
<
KernelBase
>>
OpLite
::
CreateKernels
(
std
::
vector
<
std
::
unique_ptr
<
KernelBase
>>
OpLite
::
CreateKernels
(
const
std
::
vector
<
Place
>
&
places
,
const
std
::
string
&
kernel_type
)
{
const
std
::
vector
<
Place
>
&
places
,
const
std
::
string
&
kernel_type
)
{
std
::
vector
<
std
::
unique_ptr
<
KernelBase
>>
kernels
;
std
::
vector
<
std
::
unique_ptr
<
KernelBase
>>
kernels
;
...
...
lite/core/op_lite.h
浏览文件 @
c754a38f
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
#pragma once
#pragma once
#include <functional>
#include <list>
#include <list>
#include <map>
#include <map>
#include <memory>
#include <memory>
...
@@ -24,6 +25,7 @@
...
@@ -24,6 +25,7 @@
#include "lite/core/kernel.h"
#include "lite/core/kernel.h"
#include "lite/core/scope.h"
#include "lite/core/scope.h"
#include "lite/model_parser/cpp/op_desc.h"
#include "lite/model_parser/cpp/op_desc.h"
#include "lite/operators/op_params.h"
namespace
paddle
{
namespace
paddle
{
namespace
lite
{
namespace
lite
{
...
@@ -64,8 +66,8 @@ class OpLite : public Registry {
...
@@ -64,8 +66,8 @@ class OpLite : public Registry {
// Check the shape.
// Check the shape.
virtual
bool
CheckShape
()
const
{
return
true
;
}
virtual
bool
CheckShape
()
const
{
return
true
;
}
// Inference the outputs' shape.
// Inference the outputs' shape.
virtual
bool
InferShape
()
const
{
return
true
;
}
virtual
bool
InferShape
Impl
()
const
{
return
true
;
}
virtual
bool
SmartInferShape
()
{
return
this
->
InferShape
();
}
virtual
bool
InferShape
();
// Run this operator.
// Run this operator.
virtual
bool
Run
();
virtual
bool
Run
();
// Indicate whether the Op runs only once or not
// Indicate whether the Op runs only once or not
...
@@ -151,10 +153,16 @@ class OpLite : public Registry {
...
@@ -151,10 +153,16 @@ class OpLite : public Registry {
std
::
vector
<
Place
>
valid_places_
;
std
::
vector
<
Place
>
valid_places_
;
Place
kernel_place_
{
TARGET
(
kHost
),
PRECISION
(
kFloat
)};
Place
kernel_place_
{
TARGET
(
kHost
),
PRECISION
(
kFloat
)};
std
::
unique_ptr
<
OpInfo
>
op_info_
;
std
::
unique_ptr
<
OpInfo
>
op_info_
;
std
::
vector
<
DDimLite
>
last_input_shapes
;
std
::
vector
<
DDimLite
>
last_output_shapes
;
std
::
vector
<
DDimLite
>
last_output_shapes
{};
std
::
vector
<
std
::
vector
<
std
::
vector
<
uint64_t
>>>
last_output_lods
;
std
::
vector
<
std
::
vector
<
std
::
vector
<
uint64_t
>>>
last_output_lods
{};
std
::
vector
<
std
::
vector
<
std
::
vector
<
uint64_t
>>>
last_input_lods
;
size_t
io_shape_lod_hash_
{};
mutable
operators
::
ParamBase
param_
;
private:
// Infer Shape according to memory, if current input shapes are consistent
// with that of previous inputs, output shapes of last time will be reused.
bool
InferShapeWithCache
();
};
};
/*
/*
...
...
lite/core/program.cc
浏览文件 @
c754a38f
...
@@ -286,8 +286,7 @@ void Instruction::Run() {
...
@@ -286,8 +286,7 @@ void Instruction::Run() {
return
;
return
;
}
}
// op_->InferShape();
op_
->
InferShape
();
op_
->
SmartInferShape
();
kernel_
->
Launch
();
kernel_
->
Launch
();
has_run_
=
true
;
has_run_
=
true
;
}
}
...
...
lite/operators/activation_grad_ops.cc
浏览文件 @
c754a38f
...
@@ -25,7 +25,7 @@ bool ActivationGradOp::CheckShape() const {
...
@@ -25,7 +25,7 @@ bool ActivationGradOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ActivationGradOp
::
InferShape
()
const
{
bool
ActivationGradOp
::
InferShape
Impl
()
const
{
param_
.
X_grad
->
Resize
(
param_
.
Out_grad
->
dims
());
param_
.
X_grad
->
Resize
(
param_
.
Out_grad
->
dims
());
return
true
;
return
true
;
}
}
...
...
lite/operators/activation_grad_ops.h
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ class ActivationGradOp : public OpLite {
...
@@ -26,7 +26,7 @@ class ActivationGradOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/activation_ops.cc
浏览文件 @
c754a38f
...
@@ -25,7 +25,7 @@ bool ActivationOp::CheckShape() const {
...
@@ -25,7 +25,7 @@ bool ActivationOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ActivationOp
::
InferShape
()
const
{
bool
ActivationOp
::
InferShape
Impl
()
const
{
param_
.
Out
->
Resize
(
param_
.
X
->
dims
());
param_
.
Out
->
Resize
(
param_
.
X
->
dims
());
auto
out_lod
=
param_
.
Out
->
mutable_lod
();
auto
out_lod
=
param_
.
Out
->
mutable_lod
();
*
out_lod
=
param_
.
X
->
lod
();
*
out_lod
=
param_
.
X
->
lod
();
...
...
lite/operators/activation_ops.h
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ class ActivationOp : public OpLite {
...
@@ -26,7 +26,7 @@ class ActivationOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/affine_channel_op.cc
浏览文件 @
c754a38f
...
@@ -44,7 +44,7 @@ bool AffineChannelOpLite::CheckShape() const {
...
@@ -44,7 +44,7 @@ bool AffineChannelOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AffineChannelOpLite
::
InferShape
()
const
{
bool
AffineChannelOpLite
::
InferShape
Impl
()
const
{
const
auto
x_dims
=
param_
.
X
->
dims
();
const
auto
x_dims
=
param_
.
X
->
dims
();
param_
.
Out
->
Resize
(
x_dims
);
param_
.
Out
->
Resize
(
x_dims
);
return
true
;
return
true
;
...
...
lite/operators/affine_channel_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class AffineChannelOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class AffineChannelOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/anchor_generator_op.cc
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ bool AnchorGeneratorOpLite::CheckShape() const {
...
@@ -31,7 +31,7 @@ bool AnchorGeneratorOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AnchorGeneratorOpLite
::
InferShape
()
const
{
bool
AnchorGeneratorOpLite
::
InferShape
Impl
()
const
{
auto
input_dims
=
param_
.
Input
->
dims
();
auto
input_dims
=
param_
.
Input
->
dims
();
size_t
num_anchors
=
param_
.
aspect_ratios
.
size
()
*
param_
.
anchor_sizes
.
size
();
size_t
num_anchors
=
param_
.
aspect_ratios
.
size
()
*
param_
.
anchor_sizes
.
size
();
std
::
vector
<
int64_t
>
output_shape
(
std
::
vector
<
int64_t
>
output_shape
(
...
...
lite/operators/anchor_generator_op.h
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ class AnchorGeneratorOpLite : public OpLite {
...
@@ -32,7 +32,7 @@ class AnchorGeneratorOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/argmax_op.cc
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ bool ArgmaxOpLite::CheckShape() const {
...
@@ -29,7 +29,7 @@ bool ArgmaxOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ArgmaxOpLite
::
InferShape
()
const
{
bool
ArgmaxOpLite
::
InferShape
Impl
()
const
{
auto
x_dims
=
param_
.
X
->
dims
();
auto
x_dims
=
param_
.
X
->
dims
();
int
x_rank
=
x_dims
.
size
();
int
x_rank
=
x_dims
.
size
();
int
axis
=
param_
.
Axis
;
int
axis
=
param_
.
Axis
;
...
...
lite/operators/argmax_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class ArgmaxOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class ArgmaxOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/assign_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool AssignOpLite::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool AssignOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AssignOpLite
::
InferShape
()
const
{
bool
AssignOpLite
::
InferShape
Impl
()
const
{
lite
::
DDim
input_dims
;
lite
::
DDim
input_dims
;
input_dims
=
param_
.
X
->
dims
();
input_dims
=
param_
.
X
->
dims
();
param_
.
Out
->
Resize
(
lite
::
DDim
(
input_dims
));
param_
.
Out
->
Resize
(
lite
::
DDim
(
input_dims
));
...
...
lite/operators/assign_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class AssignOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class AssignOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/assign_value_op.cc
浏览文件 @
c754a38f
...
@@ -35,7 +35,7 @@ bool AssignValueOpLite::CheckShape() const {
...
@@ -35,7 +35,7 @@ bool AssignValueOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AssignValueOpLite
::
InferShape
()
const
{
bool
AssignValueOpLite
::
InferShape
Impl
()
const
{
std
::
vector
<
int
>
shape
=
param_
.
shape
;
std
::
vector
<
int
>
shape
=
param_
.
shape
;
std
::
vector
<
int64_t
>
out_shape
;
std
::
vector
<
int64_t
>
out_shape
;
for
(
size_t
i
=
0
;
i
<
shape
.
size
();
i
++
)
out_shape
.
push_back
(
shape
[
i
]);
for
(
size_t
i
=
0
;
i
<
shape
.
size
();
i
++
)
out_shape
.
push_back
(
shape
[
i
]);
...
...
lite/operators/assign_value_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class AssignValueOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class AssignValueOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/attention_padding_mask_op.cc
浏览文件 @
c754a38f
...
@@ -28,7 +28,7 @@ bool AttentionPaddingMaskOp::CheckShape() const {
...
@@ -28,7 +28,7 @@ bool AttentionPaddingMaskOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AttentionPaddingMaskOp
::
InferShape
()
const
{
bool
AttentionPaddingMaskOp
::
InferShape
Impl
()
const
{
auto
src_len
=
param_
.
X
->
lod
()[
0
][
1
];
auto
src_len
=
param_
.
X
->
lod
()[
0
][
1
];
CHECK_EQ
(
src_len
,
param_
.
X
->
dims
()[
1
])
CHECK_EQ
(
src_len
,
param_
.
X
->
dims
()[
1
])
<<
"Mismatch source length, expect: "
<<
src_len
<<
"Mismatch source length, expect: "
<<
src_len
...
...
lite/operators/attention_padding_mask_op.h
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class AttentionPaddingMaskOp : public OpLite {
...
@@ -29,7 +29,7 @@ class AttentionPaddingMaskOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/axpy_op.cc
浏览文件 @
c754a38f
...
@@ -34,7 +34,7 @@ bool AxpyOpLite::CheckShape() const {
...
@@ -34,7 +34,7 @@ bool AxpyOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
AxpyOpLite
::
InferShape
()
const
{
bool
AxpyOpLite
::
InferShape
Impl
()
const
{
auto
dims
=
param_
.
Bias
->
dims
();
auto
dims
=
param_
.
Bias
->
dims
();
// Set output dims
// Set output dims
...
...
lite/operators/axpy_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class AxpyOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class AxpyOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/batch_norm_op.cc
浏览文件 @
c754a38f
...
@@ -46,7 +46,7 @@ bool BatchNormOp::CheckShape() const {
...
@@ -46,7 +46,7 @@ bool BatchNormOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
BatchNormOp
::
InferShape
()
const
{
bool
BatchNormOp
::
InferShape
Impl
()
const
{
auto
x_dims
=
param_
.
x
->
dims
();
auto
x_dims
=
param_
.
x
->
dims
();
int64_t
channel_size
=
0
;
int64_t
channel_size
=
0
;
switch
(
param_
.
data_layout
)
{
switch
(
param_
.
data_layout
)
{
...
...
lite/operators/batch_norm_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class BatchNormOp : public OpLite {
...
@@ -30,7 +30,7 @@ class BatchNormOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/beam_search_decode_op.cc
浏览文件 @
c754a38f
...
@@ -28,7 +28,7 @@ bool BeamSearchDecodeOpLite::CheckShape() const {
...
@@ -28,7 +28,7 @@ bool BeamSearchDecodeOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
BeamSearchDecodeOpLite
::
InferShape
()
const
{
return
true
;
}
bool
BeamSearchDecodeOpLite
::
InferShape
Impl
()
const
{
return
true
;
}
bool
BeamSearchDecodeOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
bool
BeamSearchDecodeOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
{
lite
::
Scope
*
scope
)
{
...
...
lite/operators/beam_search_decode_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class BeamSearchDecodeOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class BeamSearchDecodeOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/beam_search_op.cc
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ bool BeamSearchOp::CheckShape() const {
...
@@ -30,7 +30,7 @@ bool BeamSearchOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
BeamSearchOp
::
InferShape
()
const
{
return
true
;
}
bool
BeamSearchOp
::
InferShape
Impl
()
const
{
return
true
;
}
bool
BeamSearchOp
::
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
{
bool
BeamSearchOp
::
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
{
param_
.
pre_ids
=
scope
->
FindTensor
(
opdesc
.
Input
(
"pre_ids"
).
front
());
param_
.
pre_ids
=
scope
->
FindTensor
(
opdesc
.
Input
(
"pre_ids"
).
front
());
...
...
lite/operators/beam_search_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class BeamSearchOp : public OpLite {
...
@@ -30,7 +30,7 @@ class BeamSearchOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/box_clip_op.cc
浏览文件 @
c754a38f
...
@@ -35,7 +35,7 @@ bool BoxClipOpLite::CheckShape() const {
...
@@ -35,7 +35,7 @@ bool BoxClipOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
BoxClipOpLite
::
InferShape
()
const
{
bool
BoxClipOpLite
::
InferShape
Impl
()
const
{
auto
*
input
=
param_
.
Input
;
auto
*
input
=
param_
.
Input
;
auto
*
output
=
param_
.
Output
;
auto
*
output
=
param_
.
Output
;
output
->
Resize
(
input
->
dims
());
output
->
Resize
(
input
->
dims
());
...
...
lite/operators/box_clip_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class BoxClipOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class BoxClipOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/box_coder_op.cc
浏览文件 @
c754a38f
...
@@ -35,7 +35,7 @@ bool BoxCoderOpLite::CheckShape() const {
...
@@ -35,7 +35,7 @@ bool BoxCoderOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
BoxCoderOpLite
::
InferShape
()
const
{
bool
BoxCoderOpLite
::
InferShape
Impl
()
const
{
auto
prior_box_dims
=
param_
.
prior_box
->
dims
();
auto
prior_box_dims
=
param_
.
prior_box
->
dims
();
auto
target_box_dims
=
param_
.
target_box
->
dims
();
auto
target_box_dims
=
param_
.
target_box
->
dims
();
std
::
string
code_type
=
param_
.
code_type
;
std
::
string
code_type
=
param_
.
code_type
;
...
...
lite/operators/box_coder_op.h
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class BoxCoderOpLite : public OpLite {
...
@@ -29,7 +29,7 @@ class BoxCoderOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/calib_op.cc
浏览文件 @
c754a38f
...
@@ -24,7 +24,7 @@ bool CalibOpLite::CheckShape() const {
...
@@ -24,7 +24,7 @@ bool CalibOpLite::CheckShape() const {
CHECK_OR_FALSE
(
param_
.
output
);
CHECK_OR_FALSE
(
param_
.
output
);
return
true
;
return
true
;
}
}
bool
CalibOpLite
::
InferShape
()
const
{
bool
CalibOpLite
::
InferShape
Impl
()
const
{
param_
.
output
->
Resize
(
param_
.
input
->
dims
());
param_
.
output
->
Resize
(
param_
.
input
->
dims
());
return
true
;
return
true
;
}
}
...
...
lite/operators/calib_op.h
浏览文件 @
c754a38f
...
@@ -42,7 +42,7 @@ class CalibOpLite : public OpLite {
...
@@ -42,7 +42,7 @@ class CalibOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
);
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
);
...
...
lite/operators/cast_op.cc
浏览文件 @
c754a38f
...
@@ -25,7 +25,7 @@ bool CastOp::CheckShape() const {
...
@@ -25,7 +25,7 @@ bool CastOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
CastOp
::
InferShape
()
const
{
bool
CastOp
::
InferShape
Impl
()
const
{
CHECK_OR_FALSE
(
param_
.
Out
);
CHECK_OR_FALSE
(
param_
.
Out
);
// TODO(Superjomn) Enable data sharing.
// TODO(Superjomn) Enable data sharing.
auto
out_dims
=
param_
.
X
->
dims
();
auto
out_dims
=
param_
.
X
->
dims
();
...
...
lite/operators/cast_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class CastOp : public OpLite {
...
@@ -30,7 +30,7 @@ class CastOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/collect_fpn_proposals_op.cc
浏览文件 @
c754a38f
...
@@ -43,7 +43,7 @@ bool CollectFpnProposalsOpLite::CheckShape() const {
...
@@ -43,7 +43,7 @@ bool CollectFpnProposalsOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
CollectFpnProposalsOpLite
::
InferShape
()
const
{
bool
CollectFpnProposalsOpLite
::
InferShape
Impl
()
const
{
param_
.
fpn_rois
->
Resize
({
param_
.
post_nms_topN
,
4
});
param_
.
fpn_rois
->
Resize
({
param_
.
post_nms_topN
,
4
});
return
true
;
return
true
;
...
...
lite/operators/collect_fpn_proposals_op.h
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ class CollectFpnProposalsOpLite : public OpLite {
...
@@ -32,7 +32,7 @@ class CollectFpnProposalsOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/compare_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool CompareOp::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool CompareOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
CompareOp
::
InferShape
()
const
{
bool
CompareOp
::
InferShape
Impl
()
const
{
CHECK_OR_FALSE
(
param_
.
Out
);
CHECK_OR_FALSE
(
param_
.
Out
);
// TODO(Superjomn) Enable data sharing.
// TODO(Superjomn) Enable data sharing.
auto
input_dims
=
param_
.
X
->
dims
();
auto
input_dims
=
param_
.
X
->
dims
();
...
...
lite/operators/compare_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class CompareOp : public OpLite {
...
@@ -30,7 +30,7 @@ class CompareOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/concat_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool ConcatOpLite::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool ConcatOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ConcatOpLite
::
InferShape
()
const
{
bool
ConcatOpLite
::
InferShape
Impl
()
const
{
const
std
::
vector
<
Tensor
*>
&
inputs
=
param_
.
x
;
const
std
::
vector
<
Tensor
*>
&
inputs
=
param_
.
x
;
const
size_t
n
=
inputs
.
size
();
const
size_t
n
=
inputs
.
size
();
CHECK_GT_OR_FALSE
(
n
,
0
);
CHECK_GT_OR_FALSE
(
n
,
0
);
...
...
lite/operators/concat_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class ConcatOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class ConcatOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/conditional_block_op.cc
浏览文件 @
c754a38f
...
@@ -27,7 +27,7 @@ bool ConditionalBlockOpLite::CheckShape() const {
...
@@ -27,7 +27,7 @@ bool ConditionalBlockOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ConditionalBlockOpLite
::
InferShape
()
const
{
return
true
;
}
bool
ConditionalBlockOpLite
::
InferShape
Impl
()
const
{
return
true
;
}
bool
ConditionalBlockOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
bool
ConditionalBlockOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
{
lite
::
Scope
*
scope
)
{
...
...
lite/operators/conditional_block_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class ConditionalBlockOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class ConditionalBlockOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/conv_op.cc
浏览文件 @
c754a38f
...
@@ -80,35 +80,7 @@ void UpdatePaddingAndDilation(std::vector<int>* paddings,
...
@@ -80,35 +80,7 @@ void UpdatePaddingAndDilation(std::vector<int>* paddings,
}
}
}
}
bool
ConvOpLite
::
SmartInferShape
()
{
bool
ConvOpLite
::
InferShapeImpl
()
const
{
if
(
!
last_input_shapes
.
empty
())
{
if
(
last_input_shapes
[
0
]
==
param_
.
x
->
dims
()
&&
last_input_lods
[
0
]
==
param_
.
x
->
lod
())
{
param_
.
output
->
Resize
(
last_output_shapes
[
0
]);
param_
.
output
->
set_lod
(
last_output_lods
[
0
]);
return
true
;
}
}
this
->
InferShape
();
if
(
!
last_input_shapes
.
empty
())
{
last_input_shapes
.
clear
();
last_input_lods
.
clear
();
}
last_input_shapes
.
push_back
(
param_
.
x
->
dims
());
last_input_lods
.
push_back
(
param_
.
x
->
lod
());
if
(
!
last_output_shapes
.
empty
())
{
last_output_shapes
.
clear
();
last_output_lods
.
clear
();
}
last_output_shapes
.
push_back
(
param_
.
output
->
dims
());
last_output_lods
.
push_back
(
param_
.
output
->
lod
());
return
true
;
}
bool
ConvOpLite
::
InferShape
()
const
{
const
auto
in_dims
=
param_
.
x
->
dims
();
const
auto
in_dims
=
param_
.
x
->
dims
();
const
auto
filter_dims
=
param_
.
filter
->
dims
();
const
auto
filter_dims
=
param_
.
filter
->
dims
();
...
...
lite/operators/conv_op.h
浏览文件 @
c754a38f
...
@@ -34,9 +34,7 @@ class ConvOpLite : public OpLite {
...
@@ -34,9 +34,7 @@ class ConvOpLite : public OpLite {
explicit
ConvOpLite
(
const
std
::
string
&
type
)
:
OpLite
(
type
)
{}
explicit
ConvOpLite
(
const
std
::
string
&
type
)
:
OpLite
(
type
)
{}
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShapeImpl
()
const
override
;
bool
InferShape
()
const
override
;
bool
SmartInferShape
()
override
;
// TODO(Superjomn) replace framework::OpDesc with a lite one.
// TODO(Superjomn) replace framework::OpDesc with a lite one.
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
...
...
lite/operators/conv_transpose_op.cc
浏览文件 @
c754a38f
...
@@ -52,7 +52,7 @@ inline int ConvTransposeOutputSize(int input_size,
...
@@ -52,7 +52,7 @@ inline int ConvTransposeOutputSize(int input_size,
return
output_size
;
return
output_size
;
}
}
bool
ConvTransposeOpLite
::
InferShape
()
const
{
bool
ConvTransposeOpLite
::
InferShape
Impl
()
const
{
const
auto
in_dims
=
param_
.
x
->
dims
();
const
auto
in_dims
=
param_
.
x
->
dims
();
const
auto
filter_dims
=
param_
.
filter
->
dims
();
const
auto
filter_dims
=
param_
.
filter
->
dims
();
...
...
lite/operators/conv_transpose_op.h
浏览文件 @
c754a38f
...
@@ -34,7 +34,7 @@ class ConvTransposeOpLite : public OpLite {
...
@@ -34,7 +34,7 @@ class ConvTransposeOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/crf_decoding_op.cc
浏览文件 @
c754a38f
...
@@ -60,7 +60,7 @@ bool CrfDecodingOpLite::CheckShape() const {
...
@@ -60,7 +60,7 @@ bool CrfDecodingOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
CrfDecodingOpLite
::
InferShape
()
const
{
bool
CrfDecodingOpLite
::
InferShape
Impl
()
const
{
auto
emission_dims
=
param_
.
emission
->
dims
();
auto
emission_dims
=
param_
.
emission
->
dims
();
if
(
param_
.
length
==
nullptr
)
{
if
(
param_
.
length
==
nullptr
)
{
param_
.
viterbi_path
->
Resize
({
emission_dims
[
0
],
1
});
param_
.
viterbi_path
->
Resize
({
emission_dims
[
0
],
1
});
...
...
lite/operators/crf_decoding_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class CrfDecodingOpLite : public OpLite {
...
@@ -31,7 +31,7 @@ class CrfDecodingOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/crop_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool CropOpLite::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool CropOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
CropOpLite
::
InferShape
()
const
{
bool
CropOpLite
::
InferShape
Impl
()
const
{
// nchw
// nchw
auto
x_dims
=
param_
.
X
->
dims
();
auto
x_dims
=
param_
.
X
->
dims
();
lite
::
DDim
output_shape
(
x_dims
);
lite
::
DDim
output_shape
(
x_dims
);
...
...
lite/operators/crop_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class CropOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class CropOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/decode_bboxes_op.cc
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ bool DecodeBboxesOpLite::CheckShape() const {
...
@@ -29,7 +29,7 @@ bool DecodeBboxesOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
DecodeBboxesOpLite
::
InferShape
()
const
{
bool
DecodeBboxesOpLite
::
InferShape
Impl
()
const
{
param_
.
bbox_data
->
Resize
(
param_
.
loc_data
->
dims
());
param_
.
bbox_data
->
Resize
(
param_
.
loc_data
->
dims
());
return
true
;
return
true
;
}
}
...
...
lite/operators/decode_bboxes_op.h
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class DecodeBboxesOpLite : public OpLite {
...
@@ -29,7 +29,7 @@ class DecodeBboxesOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/density_prior_box_op.cc
浏览文件 @
c754a38f
...
@@ -27,7 +27,7 @@ bool DensityPriorBoxOpLite::CheckShape() const {
...
@@ -27,7 +27,7 @@ bool DensityPriorBoxOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
DensityPriorBoxOpLite
::
InferShape
()
const
{
return
true
;
}
bool
DensityPriorBoxOpLite
::
InferShape
Impl
()
const
{
return
true
;
}
bool
DensityPriorBoxOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
bool
DensityPriorBoxOpLite
::
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
{
lite
::
Scope
*
scope
)
{
...
...
lite/operators/density_prior_box_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class DensityPriorBoxOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class DensityPriorBoxOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/distribute_fpn_proposals_op.cc
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ bool DistributeFpnProposalsOpLite::CheckShape() const {
...
@@ -32,7 +32,7 @@ bool DistributeFpnProposalsOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
DistributeFpnProposalsOpLite
::
InferShape
()
const
{
bool
DistributeFpnProposalsOpLite
::
InferShape
Impl
()
const
{
int
num_out_rois
=
param_
.
max_level
-
param_
.
min_level
+
1
;
int
num_out_rois
=
param_
.
max_level
-
param_
.
min_level
+
1
;
for
(
int
i
=
0
;
i
<
num_out_rois
;
i
++
)
{
for
(
int
i
=
0
;
i
<
num_out_rois
;
i
++
)
{
param_
.
multi_fpn_rois
[
i
]
->
Resize
({
-
1
,
4
});
param_
.
multi_fpn_rois
[
i
]
->
Resize
({
-
1
,
4
});
...
...
lite/operators/distribute_fpn_proposals_op.h
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ class DistributeFpnProposalsOpLite : public OpLite {
...
@@ -32,7 +32,7 @@ class DistributeFpnProposalsOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/dropout_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool DropoutOp::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool DropoutOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
DropoutOp
::
InferShape
()
const
{
bool
DropoutOp
::
InferShape
Impl
()
const
{
const
auto
x_dims
=
param_
.
x
->
dims
();
const
auto
x_dims
=
param_
.
x
->
dims
();
param_
.
output
->
Resize
(
x_dims
);
param_
.
output
->
Resize
(
x_dims
);
if
(
param_
.
is_test
==
false
)
{
if
(
param_
.
is_test
==
false
)
{
...
...
lite/operators/dropout_op.h
浏览文件 @
c754a38f
...
@@ -28,7 +28,7 @@ class DropoutOp : public OpLite {
...
@@ -28,7 +28,7 @@ class DropoutOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
// TODO(Superjomn) replace framework::OpDesc with a lite one.
// TODO(Superjomn) replace framework::OpDesc with a lite one.
...
...
lite/operators/elementwise_grad_ops.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool ElementwiseGradOp::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool ElementwiseGradOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ElementwiseGradOp
::
InferShape
()
const
{
bool
ElementwiseGradOp
::
InferShape
Impl
()
const
{
auto
x_dim
=
param_
.
X
->
dims
();
auto
x_dim
=
param_
.
X
->
dims
();
auto
y_dim
=
param_
.
Y
->
dims
();
auto
y_dim
=
param_
.
Y
->
dims
();
if
(
param_
.
XGrad
)
{
if
(
param_
.
XGrad
)
{
...
...
lite/operators/elementwise_grad_ops.h
浏览文件 @
c754a38f
...
@@ -27,7 +27,7 @@ class ElementwiseGradOp : public OpLite {
...
@@ -27,7 +27,7 @@ class ElementwiseGradOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/elementwise_ops.cc
浏览文件 @
c754a38f
...
@@ -26,39 +26,8 @@ bool ElementwiseOp::CheckShape() const {
...
@@ -26,39 +26,8 @@ bool ElementwiseOp::CheckShape() const {
CHECK_OR_FALSE
(
param_
.
Out
);
CHECK_OR_FALSE
(
param_
.
Out
);
return
true
;
return
true
;
}
}
bool
ElementwiseOp
::
SmartInferShape
()
{
if
(
!
last_input_shapes
.
empty
())
{
if
(
last_input_shapes
[
0
]
==
param_
.
X
->
dims
()
&&
last_input_shapes
[
1
]
==
param_
.
Y
->
dims
()
&&
last_input_lods
[
0
]
==
param_
.
X
->
lod
()
&&
last_input_lods
[
1
]
==
param_
.
Y
->
lod
())
{
param_
.
Out
->
Resize
(
last_output_shapes
[
0
]);
param_
.
Out
->
set_lod
(
last_output_lods
[
0
]);
return
true
;
}
}
this
->
InferShape
();
if
(
!
last_input_shapes
.
empty
())
{
last_input_shapes
.
clear
();
last_input_lods
.
clear
();
}
last_input_shapes
.
push_back
(
param_
.
X
->
dims
());
last_input_lods
.
push_back
(
param_
.
X
->
lod
());
last_input_shapes
.
push_back
(
param_
.
Y
->
dims
());
last_input_lods
.
push_back
(
param_
.
Y
->
lod
());
if
(
!
last_output_shapes
.
empty
())
{
bool
ElementwiseOp
::
InferShapeImpl
()
const
{
last_output_shapes
.
clear
();
last_output_lods
.
clear
();
}
last_output_shapes
.
push_back
(
param_
.
Out
->
dims
());
last_output_lods
.
push_back
(
param_
.
Out
->
lod
());
return
true
;
}
bool
ElementwiseOp
::
InferShape
()
const
{
auto
x_dim
=
param_
.
X
->
dims
();
auto
x_dim
=
param_
.
X
->
dims
();
auto
y_dim
=
param_
.
Y
->
dims
();
auto
y_dim
=
param_
.
Y
->
dims
();
if
(
x_dim
==
y_dim
)
{
if
(
x_dim
==
y_dim
)
{
...
@@ -136,7 +105,7 @@ bool ElementwiseOp::AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) {
...
@@ -136,7 +105,7 @@ bool ElementwiseOp::AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) {
// return true;
// return true;
//}
//}
// bool ElementwiseGradExplicitOp::InferShape() const {
// bool ElementwiseGradExplicitOp::InferShape
Impl
() const {
// param_.X_grad->Resize(param_.Out_grad->dims());
// param_.X_grad->Resize(param_.Out_grad->dims());
// if (param_.Y_grad) param_.Y_grad->Resize(param_.Y->dims());
// if (param_.Y_grad) param_.Y_grad->Resize(param_.Y->dims());
// return true;
// return true;
...
...
lite/operators/elementwise_ops.h
浏览文件 @
c754a38f
...
@@ -27,8 +27,7 @@ class ElementwiseOp : public OpLite {
...
@@ -27,8 +27,7 @@ class ElementwiseOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShapeImpl
()
const
override
;
bool
SmartInferShape
()
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
@@ -48,7 +47,7 @@ class ElementwiseOp : public OpLite {
...
@@ -48,7 +47,7 @@ class ElementwiseOp : public OpLite {
// bool CheckShape() const override;
// bool CheckShape() const override;
// bool InferShape() const override;
// bool InferShape
Impl
() const override;
// bool AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) override;
// bool AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) override;
...
...
lite/operators/expand_op.cc
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ bool ExpandOpLite::CheckShape() const {
...
@@ -32,7 +32,7 @@ bool ExpandOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
ExpandOpLite
::
InferShape
()
const
{
bool
ExpandOpLite
::
InferShape
Impl
()
const
{
DDim
out_dims
(
param_
.
X
->
dims
());
DDim
out_dims
(
param_
.
X
->
dims
());
for
(
size_t
i
=
0
;
i
<
param_
.
expand_times
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
param_
.
expand_times
.
size
();
++
i
)
{
out_dims
[
i
]
*=
param_
.
expand_times
[
i
];
out_dims
[
i
]
*=
param_
.
expand_times
[
i
];
...
...
lite/operators/expand_op.h
浏览文件 @
c754a38f
...
@@ -28,7 +28,7 @@ class ExpandOpLite : public OpLite {
...
@@ -28,7 +28,7 @@ class ExpandOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/fake_channel_wise_dequantize_max_abs.h
浏览文件 @
c754a38f
...
@@ -36,7 +36,7 @@ class FakeChannelWiseDequantizeMaxAbsOpLite : public OpLite {
...
@@ -36,7 +36,7 @@ class FakeChannelWiseDequantizeMaxAbsOpLite : public OpLite {
bool
CheckShape
()
const
override
{
return
true
;
}
bool
CheckShape
()
const
override
{
return
true
;
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
...
...
lite/operators/fake_dequantize_max_abs.h
浏览文件 @
c754a38f
...
@@ -35,7 +35,7 @@ class FakeDequantizeMaxAbsOpLite : public OpLite {
...
@@ -35,7 +35,7 @@ class FakeDequantizeMaxAbsOpLite : public OpLite {
bool
CheckShape
()
const
override
{
return
true
;
}
bool
CheckShape
()
const
override
{
return
true
;
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
...
...
lite/operators/fake_quantize_dequantize_moving_avg_max_abs.h
浏览文件 @
c754a38f
...
@@ -36,7 +36,7 @@ class FakeQuantizeDequantizeMovingAvgMaxAbsOpLite : public OpLite {
...
@@ -36,7 +36,7 @@ class FakeQuantizeDequantizeMovingAvgMaxAbsOpLite : public OpLite {
bool
CheckShape
()
const
override
{
return
true
;
}
bool
CheckShape
()
const
override
{
return
true
;
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
...
...
lite/operators/fake_quantize_moving_avg_max_abs.h
浏览文件 @
c754a38f
...
@@ -36,7 +36,7 @@ class FakeQuantizeMovingAvgMaxAbsOpLite : public OpLite {
...
@@ -36,7 +36,7 @@ class FakeQuantizeMovingAvgMaxAbsOpLite : public OpLite {
bool
CheckShape
()
const
override
{
return
true
;
}
bool
CheckShape
()
const
override
{
return
true
;
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
...
...
lite/operators/fake_quantize_range_abs_max.h
浏览文件 @
c754a38f
...
@@ -36,7 +36,7 @@ class FakeQuantizeRangeMaxAbsOpLite : public OpLite {
...
@@ -36,7 +36,7 @@ class FakeQuantizeRangeMaxAbsOpLite : public OpLite {
bool
CheckShape
()
const
override
{
return
true
;
}
bool
CheckShape
()
const
override
{
return
true
;
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
{
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
auto
x
=
op_desc
.
Input
(
"X"
).
front
();
...
...
lite/operators/fc_op.cc
浏览文件 @
c754a38f
...
@@ -48,34 +48,7 @@ bool FcOpLite::CheckShape() const {
...
@@ -48,34 +48,7 @@ bool FcOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
FcOpLite
::
SmartInferShape
()
{
bool
FcOpLite
::
InferShapeImpl
()
const
{
if
(
!
last_input_shapes
.
empty
()
&&
!
last_output_shapes
.
empty
())
{
if
(
last_input_shapes
[
0
]
==
param_
.
input
->
dims
()
&&
last_input_lods
[
0
]
==
param_
.
input
->
lod
())
{
param_
.
output
->
Resize
(
last_output_shapes
[
0
]);
param_
.
output
->
set_lod
(
last_output_lods
[
0
]);
return
true
;
}
}
this
->
InferShape
();
if
(
!
last_input_shapes
.
empty
())
{
last_input_shapes
.
clear
();
last_input_lods
.
clear
();
}
last_input_shapes
.
push_back
(
param_
.
input
->
dims
());
last_input_lods
.
push_back
(
param_
.
input
->
lod
());
if
(
!
last_output_shapes
.
empty
())
{
last_output_shapes
.
clear
();
last_output_lods
.
clear
();
}
last_output_shapes
.
push_back
(
param_
.
output
->
dims
());
last_output_lods
.
push_back
(
param_
.
output
->
lod
());
return
true
;
}
bool
FcOpLite
::
InferShape
()
const
{
const
auto
&
input_dims
=
param_
.
input
->
dims
();
const
auto
&
input_dims
=
param_
.
input
->
dims
();
const
auto
&
w_dims
=
param_
.
w
->
dims
();
const
auto
&
w_dims
=
param_
.
w
->
dims
();
int
in_num_col_dims
=
param_
.
in_num_col_dims
;
int
in_num_col_dims
=
param_
.
in_num_col_dims
;
...
...
lite/operators/fc_op.h
浏览文件 @
c754a38f
...
@@ -35,8 +35,7 @@ class FcOpLite : public OpLite {
...
@@ -35,8 +35,7 @@ class FcOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShapeImpl
()
const
override
;
bool
SmartInferShape
()
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
op_desc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/feed_op.cc
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class FeedOp : public OpLite {
...
@@ -29,7 +29,7 @@ class FeedOp : public OpLite {
return
true
;
return
true
;
}
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
...
...
lite/operators/fetch_op.cc
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class FetchOp : public OpLite {
...
@@ -29,7 +29,7 @@ class FetchOp : public OpLite {
return
true
;
return
true
;
}
}
bool
InferShape
()
const
override
{
return
true
;
}
bool
InferShape
Impl
()
const
override
{
return
true
;
}
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
void
AttachKernel
(
KernelBase
*
kernel
)
override
{
kernel
->
SetParam
(
param_
);
}
protected:
protected:
...
...
lite/operators/fill_constant_batch_size_like_op.cc
浏览文件 @
c754a38f
...
@@ -28,7 +28,7 @@ bool FillConstantBatchSizeLikeOp::CheckShape() const {
...
@@ -28,7 +28,7 @@ bool FillConstantBatchSizeLikeOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
FillConstantBatchSizeLikeOp
::
InferShape
()
const
{
bool
FillConstantBatchSizeLikeOp
::
InferShape
Impl
()
const
{
std
::
vector
<
int64_t
>
output_dim
{
param_
.
shape
.
begin
(),
param_
.
shape
.
end
()};
std
::
vector
<
int64_t
>
output_dim
{
param_
.
shape
.
begin
(),
param_
.
shape
.
end
()};
if
(
param_
.
input_dim_idx
==
0
&&
!
param_
.
input
->
lod
().
empty
())
{
if
(
param_
.
input_dim_idx
==
0
&&
!
param_
.
input
->
lod
().
empty
())
{
output_dim
[
param_
.
output_dim_idx
]
=
param_
.
input
->
lod
().
back
().
size
()
-
1
;
output_dim
[
param_
.
output_dim_idx
]
=
param_
.
input
->
lod
().
back
().
size
()
-
1
;
...
...
lite/operators/fill_constant_batch_size_like_op.h
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ class FillConstantBatchSizeLikeOp : public OpLite {
...
@@ -32,7 +32,7 @@ class FillConstantBatchSizeLikeOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/fill_constant_op.cc
浏览文件 @
c754a38f
...
@@ -24,7 +24,7 @@ bool FillConstantOp::CheckShape() const {
...
@@ -24,7 +24,7 @@ bool FillConstantOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
FillConstantOp
::
InferShape
()
const
{
bool
FillConstantOp
::
InferShape
Impl
()
const
{
std
::
vector
<
int64_t
>
out_shape
;
std
::
vector
<
int64_t
>
out_shape
;
auto
shape_tensor
=
param_
.
shape_tensor
;
auto
shape_tensor
=
param_
.
shape_tensor
;
auto
shape_tensor_list
=
param_
.
shape_tensor_list
;
auto
shape_tensor_list
=
param_
.
shape_tensor_list
;
...
...
lite/operators/fill_constant_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class FillConstantOp : public OpLite {
...
@@ -31,7 +31,7 @@ class FillConstantOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/flatten_op.cc
浏览文件 @
c754a38f
...
@@ -25,7 +25,7 @@ bool FlattenOp::CheckShape() const {
...
@@ -25,7 +25,7 @@ bool FlattenOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
FlattenOp
::
InferShape
()
const
{
bool
FlattenOp
::
InferShape
Impl
()
const
{
auto
x_dims
=
param_
.
x
->
dims
();
auto
x_dims
=
param_
.
x
->
dims
();
auto
out_lod
=
param_
.
output
->
mutable_lod
();
auto
out_lod
=
param_
.
output
->
mutable_lod
();
...
@@ -71,8 +71,8 @@ bool Flatten2Op::CheckShape() const {
...
@@ -71,8 +71,8 @@ bool Flatten2Op::CheckShape() const {
return
true
;
return
true
;
}
}
bool
Flatten2Op
::
InferShape
()
const
{
bool
Flatten2Op
::
InferShape
Impl
()
const
{
FlattenOp
::
InferShape
();
FlattenOp
::
InferShape
Impl
();
auto
x_dims
=
param_
.
x
->
dims
();
auto
x_dims
=
param_
.
x
->
dims
();
std
::
vector
<
DDim
::
value_type
>
xshape_dims
(
x_dims
.
size
()
+
1
,
0
);
std
::
vector
<
DDim
::
value_type
>
xshape_dims
(
x_dims
.
size
()
+
1
,
0
);
for
(
size_t
i
=
0
;
i
<
x_dims
.
size
();
i
++
)
{
for
(
size_t
i
=
0
;
i
<
x_dims
.
size
();
i
++
)
{
...
...
lite/operators/flatten_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class FlattenOp : public OpLite {
...
@@ -30,7 +30,7 @@ class FlattenOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
@@ -49,7 +49,7 @@ class Flatten2Op : public FlattenOp {
...
@@ -49,7 +49,7 @@ class Flatten2Op : public FlattenOp {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/fusion_elementwise_activation_ops.cc
浏览文件 @
c754a38f
...
@@ -27,7 +27,7 @@ bool FusionElementwiseActivationOp::CheckShape() const {
...
@@ -27,7 +27,7 @@ bool FusionElementwiseActivationOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
FusionElementwiseActivationOp
::
InferShape
()
const
{
bool
FusionElementwiseActivationOp
::
InferShape
Impl
()
const
{
CHECK_OR_FALSE
(
param_
.
X
->
dims
().
size
()
>=
param_
.
Y
->
dims
().
size
());
CHECK_OR_FALSE
(
param_
.
X
->
dims
().
size
()
>=
param_
.
Y
->
dims
().
size
());
param_
.
Out
->
Resize
(
param_
.
X
->
dims
());
param_
.
Out
->
Resize
(
param_
.
X
->
dims
());
return
true
;
return
true
;
...
@@ -59,7 +59,7 @@ bool FusionElementwiseActivationOp::AttachImpl(const cpp::OpDesc& opdesc,
...
@@ -59,7 +59,7 @@ bool FusionElementwiseActivationOp::AttachImpl(const cpp::OpDesc& opdesc,
// return true;
// return true;
// }
// }
// bool FusionElementwiseActivationGradExplicitOp::InferShape() const {
// bool FusionElementwiseActivationGradExplicitOp::InferShape
Impl
() const {
// param_.X_grad->Resize(param_.Out_grad->dims());
// param_.X_grad->Resize(param_.Out_grad->dims());
// param_.Y_grad->Resize(param_.Y->dims());
// param_.Y_grad->Resize(param_.Y->dims());
// return true;
// return true;
...
...
lite/operators/fusion_elementwise_activation_ops.h
浏览文件 @
c754a38f
...
@@ -29,7 +29,7 @@ class FusionElementwiseActivationOp : public OpLite {
...
@@ -29,7 +29,7 @@ class FusionElementwiseActivationOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
@@ -51,7 +51,7 @@ class FusionElementwiseActivationOp : public OpLite {
...
@@ -51,7 +51,7 @@ class FusionElementwiseActivationOp : public OpLite {
// bool CheckShape() const override;
// bool CheckShape() const override;
// bool InferShape() const override;
// bool InferShape
Impl
() const override;
// bool AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) override;
// bool AttachImpl(const cpp::OpDesc& opdesc, lite::Scope* scope) override;
...
...
lite/operators/gather_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ bool GatherOp::CheckShape() const {
...
@@ -26,7 +26,7 @@ bool GatherOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
GatherOp
::
InferShape
()
const
{
bool
GatherOp
::
InferShape
Impl
()
const
{
auto
index_dims
=
param_
.
Index
->
dims
();
auto
index_dims
=
param_
.
Index
->
dims
();
CHECK
(
index_dims
.
size
()
==
1
||
CHECK
(
index_dims
.
size
()
==
1
||
(
index_dims
.
size
()
==
2
&&
index_dims
[
1
]
==
1
))
(
index_dims
.
size
()
==
2
&&
index_dims
[
1
]
==
1
))
...
...
lite/operators/gather_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class GatherOp : public OpLite {
...
@@ -30,7 +30,7 @@ class GatherOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/generate_proposals_op.cc
浏览文件 @
c754a38f
...
@@ -43,7 +43,7 @@ bool GenerateProposalsOpLite::CheckShape() const {
...
@@ -43,7 +43,7 @@ bool GenerateProposalsOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
GenerateProposalsOpLite
::
InferShape
()
const
{
bool
GenerateProposalsOpLite
::
InferShape
Impl
()
const
{
param_
.
RpnRois
->
Resize
(
std
::
vector
<
int64_t
>
({
-
1
,
4
}));
param_
.
RpnRois
->
Resize
(
std
::
vector
<
int64_t
>
({
-
1
,
4
}));
param_
.
RpnRoiProbs
->
Resize
(
std
::
vector
<
int64_t
>
({
-
1
,
1
}));
param_
.
RpnRoiProbs
->
Resize
(
std
::
vector
<
int64_t
>
({
-
1
,
1
}));
return
true
;
return
true
;
...
...
lite/operators/generate_proposals_op.h
浏览文件 @
c754a38f
...
@@ -32,7 +32,7 @@ class GenerateProposalsOpLite : public OpLite {
...
@@ -32,7 +32,7 @@ class GenerateProposalsOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/grid_sampler_op.cc
浏览文件 @
c754a38f
...
@@ -42,7 +42,7 @@ bool GridSamplerOp::CheckShape() const {
...
@@ -42,7 +42,7 @@ bool GridSamplerOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
GridSamplerOp
::
InferShape
()
const
{
bool
GridSamplerOp
::
InferShape
Impl
()
const
{
auto
x_dims
=
param_
.
x
->
dims
();
auto
x_dims
=
param_
.
x
->
dims
();
param_
.
out
->
Resize
(
x_dims
);
param_
.
out
->
Resize
(
x_dims
);
return
true
;
return
true
;
...
...
lite/operators/grid_sampler_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class GridSamplerOp : public OpLite {
...
@@ -31,7 +31,7 @@ class GridSamplerOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/gru_op.cc
浏览文件 @
c754a38f
...
@@ -51,7 +51,7 @@ bool GRUOpLite::CheckShape() const {
...
@@ -51,7 +51,7 @@ bool GRUOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
GRUOpLite
::
InferShape
()
const
{
bool
GRUOpLite
::
InferShape
Impl
()
const
{
const
auto
&
input_dims
=
param_
.
input
->
dims
();
const
auto
&
input_dims
=
param_
.
input
->
dims
();
const
auto
&
weight_dims
=
param_
.
weight
->
dims
();
const
auto
&
weight_dims
=
param_
.
weight
->
dims
();
int
frame_size
=
weight_dims
[
0
];
int
frame_size
=
weight_dims
[
0
];
...
...
lite/operators/gru_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class GRUOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class GRUOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/gru_unit_op.cc
浏览文件 @
c754a38f
...
@@ -51,7 +51,7 @@ bool GRUUnitOpLite::CheckShape() const {
...
@@ -51,7 +51,7 @@ bool GRUUnitOpLite::CheckShape() const {
return
true
;
return
true
;
}
}
bool
GRUUnitOpLite
::
InferShape
()
const
{
bool
GRUUnitOpLite
::
InferShape
Impl
()
const
{
auto
input_dims
=
param_
.
input
->
dims
();
auto
input_dims
=
param_
.
input
->
dims
();
auto
hidden_prev_dims
=
param_
.
hidden_prev
->
dims
();
auto
hidden_prev_dims
=
param_
.
hidden_prev
->
dims
();
auto
weight_dims
=
param_
.
weight
->
dims
();
auto
weight_dims
=
param_
.
weight
->
dims
();
...
...
lite/operators/gru_unit_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class GRUUnitOpLite : public OpLite {
...
@@ -30,7 +30,7 @@ class GRUUnitOpLite : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/im2sequence_op.cc
浏览文件 @
c754a38f
...
@@ -26,7 +26,7 @@ inline int Im2SeqOutputSize(
...
@@ -26,7 +26,7 @@ inline int Im2SeqOutputSize(
}
}
bool
Im2SequenceOp
::
CheckShape
()
const
{
return
true
;
}
bool
Im2SequenceOp
::
CheckShape
()
const
{
return
true
;
}
bool
Im2SequenceOp
::
InferShape
()
const
{
bool
Im2SequenceOp
::
InferShape
Impl
()
const
{
CHECK_OR_FALSE
(
param_
.
Out
);
CHECK_OR_FALSE
(
param_
.
Out
);
// TODO(Superjomn) Enable data sharing.
// TODO(Superjomn) Enable data sharing.
auto
input_dims
=
param_
.
X
->
dims
();
auto
input_dims
=
param_
.
X
->
dims
();
...
...
lite/operators/im2sequence_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class Im2SequenceOp : public OpLite {
...
@@ -30,7 +30,7 @@ class Im2SequenceOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/increment_op.cc
浏览文件 @
c754a38f
...
@@ -25,7 +25,7 @@ bool IncrementOp::CheckShape() const {
...
@@ -25,7 +25,7 @@ bool IncrementOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
IncrementOp
::
InferShape
()
const
{
bool
IncrementOp
::
InferShape
Impl
()
const
{
CHECK_OR_FALSE
(
param_
.
Out
);
CHECK_OR_FALSE
(
param_
.
Out
);
// TODO(Superjomn) Enable data sharing.
// TODO(Superjomn) Enable data sharing.
auto
out_dims
=
param_
.
X
->
dims
();
auto
out_dims
=
param_
.
X
->
dims
();
...
...
lite/operators/increment_op.h
浏览文件 @
c754a38f
...
@@ -30,7 +30,7 @@ class IncrementOp : public OpLite {
...
@@ -30,7 +30,7 @@ class IncrementOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/instance_norm_op.cc
浏览文件 @
c754a38f
...
@@ -42,7 +42,7 @@ bool InstanceNormOp::CheckShape() const {
...
@@ -42,7 +42,7 @@ bool InstanceNormOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
InstanceNormOp
::
InferShape
()
const
{
bool
InstanceNormOp
::
InferShape
Impl
()
const
{
auto
x_dims
=
param_
.
x
->
dims
();
auto
x_dims
=
param_
.
x
->
dims
();
int64_t
batch_size
=
x_dims
[
0
];
int64_t
batch_size
=
x_dims
[
0
];
int64_t
channel_size
=
x_dims
[
1
];
int64_t
channel_size
=
x_dims
[
1
];
...
...
lite/operators/instance_norm_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class InstanceNormOp : public OpLite {
...
@@ -31,7 +31,7 @@ class InstanceNormOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/interpolate_op.cc
浏览文件 @
c754a38f
...
@@ -34,7 +34,7 @@ bool InterpolateOp::CheckShape() const {
...
@@ -34,7 +34,7 @@ bool InterpolateOp::CheckShape() const {
return
true
;
return
true
;
}
}
bool
InterpolateOp
::
InferShape
()
const
{
bool
InterpolateOp
::
InferShape
Impl
()
const
{
auto
X
=
param_
.
X
;
auto
X
=
param_
.
X
;
int
n
=
X
->
dims
()[
0
];
int
n
=
X
->
dims
()[
0
];
...
...
lite/operators/interpolate_op.h
浏览文件 @
c754a38f
...
@@ -31,7 +31,7 @@ class InterpolateOp : public OpLite {
...
@@ -31,7 +31,7 @@ class InterpolateOp : public OpLite {
bool
CheckShape
()
const
override
;
bool
CheckShape
()
const
override
;
bool
InferShape
()
const
override
;
bool
InferShape
Impl
()
const
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
bool
AttachImpl
(
const
cpp
::
OpDesc
&
opdesc
,
lite
::
Scope
*
scope
)
override
;
...
...
lite/operators/io_copy_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/io_copy_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/is_empty_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/is_empty_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/layer_norm_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/layer_norm_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/layout_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/layout_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lod_reset_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lod_reset_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/logical_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/logical_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_dequant_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_dequant_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_v2_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lookup_table_v2_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lrn_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lrn_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lstm_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/lstm_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/match_matrix_tensor_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/match_matrix_tensor_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/matmul_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/matmul_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mean_grad_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mean_grad_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mean_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mean_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/merge_lod_tensor_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/merge_lod_tensor_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mul_grad_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mul_grad_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mul_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/mul_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/multiclass_nms_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/multiclass_nms_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/negative_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/negative_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/norm_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/norm_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/op_params.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/pad2d_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/pad2d_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/pool_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/pool_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/power_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/power_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/prior_box_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/prior_box_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/range_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/range_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/read_from_array_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/read_from_array_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_max_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_max_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_mean_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_mean_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_ops.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_ops.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_prod_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reduce_prod_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/relu_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/relu_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reshape_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/reshape_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/roi_align_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/roi_align_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/scale_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/scale_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_aligned_mat_mul_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_aligned_mat_mul_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_fc_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_fc_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_grnn_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_grnn_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_group_padding_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_group_padding_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_depadding_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_depadding_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_fc_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_fc_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_softmax_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/search_seq_softmax_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_arithmetic_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_arithmetic_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_concat_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_concat_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_conv_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_conv_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_expand_as_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_expand_as_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_expand_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_expand_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_pool_concat_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_pool_concat_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_pool_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_pool_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_reshape_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_reshape_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_reverse_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_reverse_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_softmax_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_softmax_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_topk_avg_pooling_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sequence_topk_avg_pooling_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sgd_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/sgd_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/shape_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/shape_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/shuffle_channel_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/shuffle_channel_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/slice_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/slice_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/softmax_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/softmax_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/split_lod_tensor_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/split_lod_tensor_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/split_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/split_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/squeeze_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/squeeze_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/stack_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/stack_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/subgraph_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/subgraph_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/topk_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/topk_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/transpose_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/transpose_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/uniform_random_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/uniform_random_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/unsqueeze_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/unsqueeze_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/var_conv_2d_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/var_conv_2d_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/while_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/while_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/write_to_array_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/write_to_array_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/yolo_box_op.cc
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
lite/operators/yolo_box_op.h
浏览文件 @
c754a38f
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录