使用tensorrt8 的api搭建 动态输入 的神经网络时候; 添加ISliceLayer报错,Input Tensor的shape是Dim{5, {3, 1, 8, -1, 15}} , 如何设置setInput(2, xx)使Output Tensor的shape为Dim{5, {1, 1, 8, -1, 15}}。
// (3, 1, 8, -1, 15) -> (1, 1, 8, -1, 15)
ISliceLayer* q = network->addSlice(*sf1->getOutput(0), Dims{5, {0, 0, 0, 0, 0}}, Dims{5, {1, 1, 8, -1, 15}}, Dims{5, {1,1, 1, 1, 1}});
// q->setInput(2, network->addConstant());
q: : [10/21/2022-09:18:09] [E] [TRT] 3: (Unnamed Layer* 142) [Slice]: slice size cannot have negative dimension, size = [1,1,8,-1,15]
ISliceLayer* q = network->addSlice(*sf1->getOutput(0), Dims{5, {0, 0, 0, 0, 0}}, Dims{5, {0, 0, 0, 0, 0}}, Dims{5, {1,1, 1, 1, 1}});
q.setInput(2, xx);
IScaleLayer在setInput()方法中的第一个参数为1到3的时候会从静态变成动态,还不清楚如何设置第二个参数
q: : [10/21/2022-09:18:09] [E] [TRT] 3: (Unnamed Layer* 142) [Slice]: slice size cannot have negative dimension, size = [1,1,8,-1,15]
q: :[10/21/2022-09:18:09][E][TRT]3:(未命名层*142)[Slice]:切片大小不能具有负维度,大小=[1,1,8,-1,15]
思路1
一直报layer未定义异常,需要引入正确的js文件
需注意1.认真看报错所在位置(Unnamed Layer* 142) 2.分析js引入为啥报错
思路2【这里仅为个人对切片的理解,仅供解题分析参考】
这里的start和end 表示的是切片的开始位置和结束位置,step表示步长,
当步长step为负数时,因为要逆序取,所以start必须要比end 大才能取到值,不然返回空!!