onnx转tensorrt的时候报的一个小错误,记录一下:
terminate called after throwing an instance of 'std::out_of_range'
what(): Attribute not found: axes
Aborted (core dumped)
错误发生在squeeze操作这里:
def forward(self, input):
features = input
for pfn in self.pfn_layers:
features = pfn(features)
features = features.squeeze().contiguous() #(N,1,64)=>(N,64)
return features
我要将shape为(N,1,64)的feturemap做一个维度压缩,去掉维数为1的维度,我习惯性的直接调用squeeze()操作。然后,生成onnx是正常的。onnx转tensorrt的时候报了上面的错误。改正错误的方式也很简单,squeeze的时候明确指定要压缩的维度即可。
def forward(self, input):
features = input
for pfn in self.pfn_layers:
features = pfn(features)
features = features.squeeze(dim=1).contiguous() #(N,1,64)=>(N,64)
return features