生成tensorrt引擎错误记录-crnn


背景介绍:生成engine ,模型crnn,ubantu16.04

工程代码截图:

 

具体流程:

1. generate crnn.wts from pytorch

git clone https://github.com/wang-xinyu/tensorrtx.git
git clone https://github.com/meijieru/crnn.pytorch.git
// download its weights 'crnn.pth'
// copy tensorrtx/crnn/genwts.py into crnn.pytorch/
// go to crnn.pytorch/
python genwts.py
// a file 'crnn.wts' will be generated.

2. build tensorrtx/crnn and run

// put crnn.wts into tensorrtx/crnn
// go to tensorrtx/crnn
mkdir build
cd build
cmake ..
make
sudo ./crnn -s  // serialize model to plan file i.e. 'crnn.engine'
// copy crnn.pytorch/data/demo.png here
sudo ./crnn -d  // deserialize plan file and run inference

3. check the output as follows:

raw: a-----v--a-i-l-a-bb-l-e---
sim: available

sudo ./crnn -s时:

1. [E] [TRT] Parameter check failed at: ../builder/Network.cpp::addConvolutionNd::488, condition: kernelWeights.values != nullptr

问题在这里:    IConvolutionLayer* conv = network->addConvolutionNd(input, nOut, DimsHW{ks_w[i], ks_h[i]}, weightMap["cnn.conv" + std::to_string(i) + ".weight"], weightMap["cnn.conv" + std::to_string(i) + ".bias"]);

在加载权重参数的时候,wts文件里网络层名字和代码里不一样。

解决方式:将名字修改成一致即可。

wts文件里网络层

crnn.cpp里网络层名字

问题原因:代码不熟悉,搬砖。

2.splitLstmWeights(weightMap, lname + ".weight_ih_l0");

 lstm->setWeightsForGate(0, RNNGateType::kINPUT, true, weightMap[lname + ".weight_ih_l00"]);

这俩句代码网上讲解很少,个人理解是拆分权重并加载。

3.[E] [TRT] (Unnamed Layer* 23) [Fully Connected]: kernel weights has count 262144 but 131072 was expected

解决方式:如提示所说,实际的参数量与网络所需要的参数不同,说明网络构建的有问题。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
四维卷积循环神经网络(4D-CRNN)是一种结合了四维卷积和循环神经网络的模型。它在视频和音频等时间序列数据处理方面具有较好的表现。 传统的卷积神经网络(CNN)主要用于图像分类,通过二维卷积操作可以提取图像中的空间特征,但缺乏时间上的建模能力。而循环神经网络RNN)则能够捕捉时间序列数据中的时间依赖信息,但对于图像等空间结构较弱的数据表现较差。 4D-CRNN结合了CNN和RNN的优点,使得模型能够同时对空间和时间特征进行学习。其网络结构包括四个维度:空间维度、时间维度、频道维度和样本维度。 在4D-CRNN中,首先使用二维卷积层对输入的空间特征进行提取,然后引入时间维度的循环神经网络对时间序列数据进行建模。与传统的3D-CNN相比,4D-CRNN通过增加频道维度对多通道数据进行处理,从而更好地捕捉信息。 4D-CRNN在视频分类、行为识别等任务上表现出色。通过将视频帧作为输入,网络可以同时学习到空间和时间特征,从而更好地理解动态的图像内容。在音频领域,4D-CRNN可以将频谱图作为输入,并对时间维度的音频信号进行建模,能够更好地处理语音识别、声音分类等任务。 总的来说,4D-CRNN是一种结合了四维卷积和循环神经网络的模型,在处理视频和音频等时间序列数据方面表现出色,能够有效提取空间和时间特征,具有很高的应用潜力。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值