提交 d746e49f 编写于 作者: X xzl

add dilation to conv test

上级 e06f8fcf
...@@ -79,45 +79,50 @@ void Convolution(const std::string& conv1, ...@@ -79,45 +79,50 @@ void Convolution(const std::string& conv1,
if (outputChannels < inputChannels) continue; if (outputChannels < inputChannels) continue;
for (size_t stride : {1, 2}) { for (size_t stride : {1, 2}) {
for (size_t padding : {0, 1}) { for (size_t padding : {0, 1}) {
if (padding >= filterSize) break; for (size_t dilation : {1}) {
if (padding >= filterSize) break;
// NNPACK only supports stride = 1 if batchSize > 1 // NNPACK only supports stride = 1 if batchSize > 1
if ((conv1 == "NNPACKConv-CPU" || conv2 == "NNPACKConv-CPU") && if ((conv1 == "NNPACKConv-CPU" ||
batchSize > 1 && stride > 1) conv2 == "NNPACKConv-CPU") &&
break; batchSize > 1 && stride > 1)
break;
size_t outputSize = size_t outputSize =
(inputSize - filterSize + 2 * padding + stride) / stride; (inputSize - filterSize + 2 * padding + stride) / stride;
VLOG(3) << " batchSize=" << batchSize VLOG(3) << " batchSize=" << batchSize
<< " inputChannels=" << inputChannels << " inputChannels=" << inputChannels
<< " inputHeight=" << inputSize << " inputHeight=" << inputSize
<< " inputWidth=" << inputSize << " inputWidth=" << inputSize
<< " outputChannels=" << outputChannels << " outputChannels=" << outputChannels
<< " filterHeight=" << filterSize << " filterHeight=" << filterSize
<< " filterWidth=" << filterSize << " filterWidth=" << filterSize
<< " outputHeight=" << outputSize << " outputHeight=" << outputSize
<< " outputWidth=" << outputSize << " stride=" << stride << " outputWidth=" << outputSize
<< " padding=" << padding; << " stride=" << stride << " padding=" << padding;
std::vector<size_t> paddings = {padding, padding}; std::vector<size_t> paddings = {padding, padding};
std::vector<size_t> strides = {stride, stride}; std::vector<size_t> strides = {stride, stride};
Compare2Function<DType1, DType2> test( std::vector<size_t> dilations = {dilation, dilation};
conv1, Compare2Function<DType1, DType2> test(
conv2, conv1,
FuncConfig() conv2,
.set("paddings", paddings) FuncConfig()
.set("strides", strides) .set("paddings", paddings)
.set("groups", (size_t)1) .set("strides", strides)
.set("algo", (std::string) "auto")); .set("dilations", dilations)
.set("groups", (size_t)1)
.set("algo", (std::string) "auto"));
TensorShape input{ TensorShape input{
batchSize, inputChannels, inputSize, inputSize}; batchSize, inputChannels, inputSize, inputSize};
TensorShape filter{ TensorShape filter{
outputChannels, inputChannels, filterSize, filterSize}; outputChannels, inputChannels, filterSize, filterSize};
TensorShape output{ TensorShape output{
batchSize, outputChannels, outputSize, outputSize}; batchSize, outputChannels, outputSize, outputSize};
function(test, input, filter, output); function(test, input, filter, output);
}
} }
} }
} }
...@@ -144,6 +149,7 @@ void Convolution2(const std::string& conv1, ...@@ -144,6 +149,7 @@ void Convolution2(const std::string& conv1,
for (size_t outputChannels : {7}) { for (size_t outputChannels : {7}) {
size_t stride = 1; size_t stride = 1;
size_t padding = 0; size_t padding = 0;
size_t dilation = 1;
size_t outputHeight = size_t outputHeight =
(inputHeight - filterHeight + 2 * padding + stride) / (inputHeight - filterHeight + 2 * padding + stride) /
stride; stride;
...@@ -162,6 +168,7 @@ void Convolution2(const std::string& conv1, ...@@ -162,6 +168,7 @@ void Convolution2(const std::string& conv1,
std::vector<size_t> paddings = {padding, padding}; std::vector<size_t> paddings = {padding, padding};
std::vector<size_t> strides = {stride, stride}; std::vector<size_t> strides = {stride, stride};
std::vector<size_t> dilations = {dilation, dilation};
Compare2Function<DType1, DType2> test( Compare2Function<DType1, DType2> test(
conv1, conv1,
conv2, conv2,
...@@ -169,6 +176,7 @@ void Convolution2(const std::string& conv1, ...@@ -169,6 +176,7 @@ void Convolution2(const std::string& conv1,
.set("paddings", paddings) .set("paddings", paddings)
.set("strides", strides) .set("strides", strides)
.set("groups", (size_t)1) .set("groups", (size_t)1)
.set("dilations", dilations)
.set("algo", (std::string) "auto")); .set("algo", (std::string) "auto"));
TensorShape input{ TensorShape input{
...@@ -223,6 +231,7 @@ void DepthwiseConvolution(const std::string& conv1, ...@@ -223,6 +231,7 @@ void DepthwiseConvolution(const std::string& conv1,
std::vector<size_t> paddings = {padding, padding}; std::vector<size_t> paddings = {padding, padding};
std::vector<size_t> strides = {stride, stride}; std::vector<size_t> strides = {stride, stride};
std::vector<size_t> dilations = {1, 1};
size_t groups = inputChannels; size_t groups = inputChannels;
Compare2Function<DType1, DType2> test( Compare2Function<DType1, DType2> test(
conv1, conv1,
...@@ -231,6 +240,7 @@ void DepthwiseConvolution(const std::string& conv1, ...@@ -231,6 +240,7 @@ void DepthwiseConvolution(const std::string& conv1,
.set("paddings", paddings) .set("paddings", paddings)
.set("strides", strides) .set("strides", strides)
.set("groups", groups) .set("groups", groups)
.set("dilations", dilations)
.set("algo", (std::string) "auto")); .set("algo", (std::string) "auto"));
TensorShape input{ TensorShape input{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册