conv2d ok, but deconv ha different dim with tensorrt

This commit is contained in:
Francesco Gatti
2019-10-30 16:45:46 +01:00
parent f247300469
commit 2594f59d0d
4 changed files with 9 additions and 8 deletions
+1 -1
View File
@@ -166,7 +166,7 @@ public:
protected:
cudnnFilterDescriptor_t filterDesc;
cudnnConvolutionDescriptor_t convDesc;
cudnnConvolutionFwdAlgo_t fwAlgo;
cudnnConvolutionFwdAlgo_t algo;
cudnnConvolutionBwdDataAlgo_t bwAlgo;
cudnnTensorDescriptor_t biasTensorDesc;
-1
View File
@@ -75,7 +75,6 @@ public:
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Layer *l);
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Conv2d *l);
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, DeConv2d *l);
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Activation *l);
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Dense *l);
nvinfer1::ILayer* convert_layer(nvinfer1::ITensor *input, Pooling *l);
+6 -6
View File
@@ -73,10 +73,10 @@ void Conv2d::initCUDNN(bool back) {
} else {
checkCUDNN( cudnnGetConvolutionForwardAlgorithm(net->cudnnHandle,
srcTensor, filterDesc, convDesc, dstTensor,
CUDNN_CONVOLUTION_FWD_PREFER_FASTEST, 0, &fwAlgo) );
CUDNN_CONVOLUTION_FWD_PREFER_FASTEST, 0, &algo) );
checkCUDNN(cudnnGetConvolutionForwardWorkspaceSize(net->cudnnHandle,
srcTensor, filterDesc, convDesc, dstTensor,
fwAlgo, &ws_sizeInBytes));
algo, &ws_sizeInBytes));
}
}
@@ -93,14 +93,14 @@ void Conv2d::inferCUDNN(dnnType* srcData, bool back) {
} else {
checkCUDNN(cudnnConvolutionForward(net->cudnnHandle,
&alpha, srcTensorDesc, srcData, filterDesc,
data_d, convDesc, fwAlgo, workSpace, ws_sizeInBytes,
data_d, convDesc, algo, workSpace, ws_sizeInBytes,
&beta, dstTensorDesc, dstData));
}
if(!batchnorm) {
// bias
alpha = dnnType(1);
beta = dnnType(0);
beta = dnnType(1);
checkCUDNN( cudnnAddTensor(net->cudnnHandle,
&alpha, biasTensorDesc, bias_d,
&beta, dstTensorDesc, dstData) );
@@ -116,7 +116,7 @@ void Conv2d::inferCUDNN(dnnType* srcData, bool back) {
}
}
Conv2d::Conv2d( Network *net, int out_ch, int kernelH, int kernelW,
Conv2d::Conv2d( Network *net, int out_ch, int kernelH, int kernelW,
int strideH, int strideW, int paddingH, int paddingW,
std::string fname_weights, bool batchnorm, bool deConv) :
@@ -156,7 +156,7 @@ Conv2d::Conv2d( Network *net, int out_ch, int kernelH, int kernelW,
}
Conv2d::~Conv2d() {
checkCUDNN( cudnnDestroyFilterDescriptor(filterDesc) );
checkCUDNN( cudnnDestroyConvolutionDescriptor(convDesc) );
checkCUDNN( cudnnDestroyTensorDescriptor(biasTensorDesc) );
+2
View File
@@ -19,6 +19,8 @@ int main() {
tk::dnn::Dense l5(&net, 4, d2_bin);
tk::dnn::Activation l6(&net, CUDNN_ACTIVATION_RELU);
net.print();
// Load input
dnnType *data;
dnnType *input_h;