Further improved the performance of the contrast adjustment code by optimizing the broadcast of scalars
Change: 111631992
This commit is contained in:
parent
339db86e2b
commit
d38fecedf5
@ -38,14 +38,11 @@ struct AdjustContrast {
|
||||
Eigen::array<int, 4> scalar_broadcast{{batch, height, width, channels}};
|
||||
#if !defined(EIGEN_HAS_INDEX_LIST)
|
||||
Eigen::array<int, 2> reduction_axis{{1, 2}};
|
||||
Eigen::array<int, 4> scalar{{1, 1, 1, 1}};
|
||||
Eigen::array<int, 4> broadcast_dims{{1, height, width, 1}};
|
||||
Eigen::Tensor<int, 4>::Dimensions reshape_dims{{batch, 1, 1, channels}};
|
||||
#else
|
||||
Eigen::IndexList<Eigen::type2index<1>, Eigen::type2index<2> >
|
||||
reduction_axis;
|
||||
Eigen::IndexList<Eigen::type2index<1>, Eigen::type2index<1>,
|
||||
Eigen::type2index<1>, Eigen::type2index<1> > scalar;
|
||||
Eigen::IndexList<Eigen::type2index<1>, int, int, Eigen::type2index<1> >
|
||||
broadcast_dims;
|
||||
broadcast_dims.set(1, height);
|
||||
@ -55,6 +52,7 @@ struct AdjustContrast {
|
||||
reshape_dims.set(0, batch);
|
||||
reshape_dims.set(3, channels);
|
||||
#endif
|
||||
Eigen::Sizes<1, 1, 1, 1> scalar;
|
||||
float num_reduced_coeffs = height * width;
|
||||
mean_values.device(d) =
|
||||
(input.template cast<float>().sum(reduction_axis).eval() /
|
||||
@ -88,16 +86,12 @@ struct AdjustContrastv2 {
|
||||
Eigen::array<int, 4> scalar_broadcast{{batch, height, width, channels}};
|
||||
#if !defined(EIGEN_HAS_INDEX_LIST)
|
||||
Eigen::array<int, 2> reduction_axis{{0, 1}};
|
||||
Eigen::array<int, 4> scalar{{1, 1, 1, 1}};
|
||||
Eigen::array<int, 4> broadcast_dims{{1, height, width, 1}};
|
||||
Eigen::Tensor<int, 4>::Dimensions reshape_dims{{batch, 1, 1, channels}};
|
||||
Eigen::array<int, 4> reduced_dims_first{{1, 2, 0, 3}};
|
||||
#else
|
||||
Eigen::IndexList<Eigen::type2index<0>, Eigen::type2index<1> >
|
||||
reduction_axis;
|
||||
Eigen::IndexList<Eigen::type2index<1>, Eigen::type2index<1>,
|
||||
Eigen::type2index<1>, Eigen::type2index<1> >
|
||||
scalar;
|
||||
Eigen::IndexList<Eigen::type2index<1>, int, int, Eigen::type2index<1> >
|
||||
broadcast_dims;
|
||||
broadcast_dims.set(1, height);
|
||||
@ -110,6 +104,7 @@ struct AdjustContrastv2 {
|
||||
Eigen::type2index<0>, Eigen::type2index<3> >
|
||||
reduced_dims_first;
|
||||
#endif
|
||||
Eigen::Sizes<1, 1, 1, 1> scalar;
|
||||
float num_reduced_coeffs = height * width;
|
||||
output.device(d) =
|
||||
(input.shuffle(reduced_dims_first).sum(reduction_axis).eval() /
|
||||
|
Loading…
Reference in New Issue
Block a user