未验证 提交 f3aad572 编写于 作者: Y Yuan Shuai 提交者: GitHub

[LITE][OPENCL] Fix input rand range of opencl conv1x1 test (#3463)

* [LITE][OPENCL] Fix opencl miscs. test=develop

* [LITE][OPENCL] fix opencl api. test=develop

* fix. test=develop

* [LITE][OPENCL] Fix OpenCL activation judge of Conv Kernel. test=develop

* change back for cxx_api.cc test=develop

* change back for cxx_api.cc test=develop

* Fix activation act_type default value. test=develop

* Fix enum value. test=develop

* Fix conv test for relu. test=develop

* [LITE][OPENCL] Fix input randaom range of conv1x1 opencl kernel. test=develop

* fix miscs. test=develop
上级 1e60f7fa
...@@ -121,6 +121,7 @@ static void conv_basic(const Dtype1* din, ...@@ -121,6 +121,7 @@ static void conv_basic(const Dtype1* din,
} }
} }
} }
int ConvOutputSize(int input_size, int ConvOutputSize(int input_size,
int filter_size, int filter_size,
int dilation, int dilation,
...@@ -267,7 +268,7 @@ TEST(conv2d, compute_image2d_1x1) { ...@@ -267,7 +268,7 @@ TEST(conv2d, compute_image2d_1x1) {
const size_t cl_image2d_slice_pitch{0}; const size_t cl_image2d_slice_pitch{0};
std::default_random_engine engine; std::default_random_engine engine;
std::uniform_real_distribution<float> gen(-5, 5); std::uniform_real_distribution<float> gen(-2, 2);
std::vector<float> input_v(batch_size * ic * ih * iw); std::vector<float> input_v(batch_size * ic * ih * iw);
std::vector<float> filter_v(oc * ic * ksize * ksize); std::vector<float> filter_v(oc * ic * ksize * ksize);
...@@ -344,11 +345,6 @@ TEST(conv2d, compute_image2d_1x1) { ...@@ -344,11 +345,6 @@ TEST(conv2d, compute_image2d_1x1) {
for (int i = 0; i < x_image_v.size(); i++) { for (int i = 0; i < x_image_v.size(); i++) {
SHADOW_LOG << "(" << i << ")" << Half2Float(x_image_v[i]); SHADOW_LOG << "(" << i << ")" << Half2Float(x_image_v[i]);
} }
// auto* filter_image2d =
// filter.mutable_data<half_t, cl::Image2D>(
// filter_image_width,
// filter_image_height,
// filter_image_v.data());
SHADOW_LOG << "卷积核 : ---- "; SHADOW_LOG << "卷积核 : ---- ";
for (int i = 0; i < filter_v.size(); i++) { for (int i = 0; i < filter_v.size(); i++) {
SHADOW_LOG << "(" << i << ")" << filter_v[i]; SHADOW_LOG << "(" << i << ")" << filter_v[i];
...@@ -377,15 +373,6 @@ TEST(conv2d, compute_image2d_1x1) { ...@@ -377,15 +373,6 @@ TEST(conv2d, compute_image2d_1x1) {
} }
bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(), bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(),
bias_dim); bias_dim);
// CLImageConverterFolder folder_convertor;
// folder_convertor.NCHWToImage(
// bias_v.data(), bias_image_v.data(),
// bias_dim);
//
// auto* bias_data = bias.mutable_data<float,
// cl::Image2D>(
// bias_image_width, bias_image_height,
// bias_image_v.data());
} }
SHADOW_LOG << "resize output ..."; SHADOW_LOG << "resize output ...";
...@@ -554,9 +541,6 @@ const int stride = 2; ...@@ -554,9 +541,6 @@ const int stride = 2;
PRECISION(kFP16), PRECISION(kFP16),
DATALAYOUT(kImageDefault)); DATALAYOUT(kImageDefault));
ASSERT_FALSE(kernels.empty()); ASSERT_FALSE(kernels.empty());
// CHECK(batch_size == 1) << "conv3x3 only supprt
// batch_size == 1";
auto kernel = std::move(kernels.front()); auto kernel = std::move(kernels.front());
SHADOW_LOG << "created conv2d kernel"; SHADOW_LOG << "created conv2d kernel";
...@@ -647,7 +631,7 @@ const int stride = 2; ...@@ -647,7 +631,7 @@ const int stride = 2;
const size_t cl_image2d_slice_pitch{0}; const size_t cl_image2d_slice_pitch{0};
std::default_random_engine engine; std::default_random_engine engine;
std::uniform_real_distribution<float> gen(-5, 5); std::uniform_real_distribution<float> gen(-2, 2);
std::vector<float> input_v(batch_size * ic * ih * iw); std::vector<float> input_v(batch_size * ic * ih * iw);
std::vector<float> filter_v(oc * filter_channel * ksize * ksize); std::vector<float> filter_v(oc * filter_channel * ksize * ksize);
...@@ -728,28 +712,12 @@ const int stride = 2; ...@@ -728,28 +712,12 @@ const int stride = 2;
// assign filter as target arm // assign filter as target arm
filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(), filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(),
filter_dim); filter_dim);
// filter kernel
// auto* filter_image2d = filter.mutable_data<float,
// cl::Image2D>(
// filter_image_width,
// filter_image_height,
// filter_image_v.data());
if (bias_flag) { if (bias_flag) {
for (int i = 0; i < bias_dim.production(); ++i) { for (int i = 0; i < bias_dim.production(); ++i) {
bias_v[i] = static_cast<int>(gen(engine)); bias_v[i] = static_cast<int>(gen(engine));
} }
bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(), bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(),
bias_dim); bias_dim);
// CLImageConverterFolder folder_convertor;
// folder_convertor.NCHWToImage(
// bias_v.data(), bias_image_v.data(),
// bias_dim);
//
// auto* bias_data = bias.mutable_data<float,
// cl::Image2D>(
// bias_image_width, bias_image_height,
// bias_image_v.data());
} }
SHADOW_LOG << "resize output ..."; SHADOW_LOG << "resize output ...";
...@@ -1002,7 +970,7 @@ TEST(conv2d, compute_image2d_5x5) { ...@@ -1002,7 +970,7 @@ TEST(conv2d, compute_image2d_5x5) {
const size_t cl_image2d_slice_pitch{0}; const size_t cl_image2d_slice_pitch{0};
std::default_random_engine engine; std::default_random_engine engine;
std::uniform_real_distribution<float> gen(-5, 5); std::uniform_real_distribution<float> gen(-2, 2);
std::vector<float> input_v(batch_size * ic * ih * iw); std::vector<float> input_v(batch_size * ic * ih * iw);
std::vector<float> filter_v(oc * ic * ksize * ksize); std::vector<float> filter_v(oc * ic * ksize * ksize);
...@@ -1079,28 +1047,12 @@ TEST(conv2d, compute_image2d_5x5) { ...@@ -1079,28 +1047,12 @@ TEST(conv2d, compute_image2d_5x5) {
// assign filter as target arm // assign filter as target arm
filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(), filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(),
filter_dim); filter_dim);
// filter kernel
// auto* filter_image2d = filter.mutable_data<float,
// cl::Image2D>(
// filter_image_width,
// filter_image_height,
// filter_image_v.data());
if (bias_flag) { if (bias_flag) {
for (int i = 0; i < bias_dim.production(); ++i) { for (int i = 0; i < bias_dim.production(); ++i) {
bias_v[i] = static_cast<int>(gen(engine)); bias_v[i] = static_cast<int>(gen(engine));
} }
bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(), bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(),
bias_dim); bias_dim);
// CLImageConverterFolder folder_convertor;
// folder_convertor.NCHWToImage(
// bias_v.data(), bias_image_v.data(),
// bias_dim);
//
// auto* bias_data = bias.mutable_data<float,
// cl::Image2D>(
// bias_image_width, bias_image_height,
// bias_image_v.data());
} }
SHADOW_LOG << "resize output ..."; SHADOW_LOG << "resize output ...";
...@@ -1337,7 +1289,7 @@ TEST(conv2d, compute_image2d_7x7) { ...@@ -1337,7 +1289,7 @@ TEST(conv2d, compute_image2d_7x7) {
const size_t cl_image2d_slice_pitch{0}; const size_t cl_image2d_slice_pitch{0};
std::default_random_engine engine; std::default_random_engine engine;
std::uniform_real_distribution<float> gen(-5, 5); std::uniform_real_distribution<float> gen(-2, 2);
std::vector<float> input_v(batch_size * ic * ih * iw); std::vector<float> input_v(batch_size * ic * ih * iw);
std::vector<float> filter_v(oc * ic * ksize * ksize); std::vector<float> filter_v(oc * ic * ksize * ksize);
...@@ -1428,29 +1380,12 @@ TEST(conv2d, compute_image2d_7x7) { ...@@ -1428,29 +1380,12 @@ TEST(conv2d, compute_image2d_7x7) {
// assign filter as target arm // assign filter as target arm
filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(), filter.Assign<float, lite::DDim, TARGET(kARM)>(filter_v.data(),
filter_dim); filter_dim);
// auto* filter_image2d =
// filter.mutable_data < float,
// cl::Image2D>(
// filter_image_width,
// filter_image_height,
// filter_image_v.data());
if (bias_flag) { if (bias_flag) {
for (int i = 0; i < bias_dim.production(); ++i) { for (int i = 0; i < bias_dim.production(); ++i) {
bias_v[i] = static_cast<int>(gen(engine)); bias_v[i] = static_cast<int>(gen(engine));
} }
bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(), bias.Assign<float, lite::DDim, TARGET(kARM)>(bias_v.data(),
bias_dim); bias_dim);
// CLImageConverterFolder folder_convertor;
// folder_convertor.NCHWToImage(
// bias_v.data(), bias_image_v.data(),
// bias_dim);
//
// auto* bias_data = bias.mutable_data<float,
// cl::Image2D>(
// bias_image_width, bias_image_height,
// bias_image_v.data());
} }
SHADOW_LOG << "resize output ..."; SHADOW_LOG << "resize output ...";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册