NVIDIA-AI-IOT / torch2trt

An easy to use PyTorch to TensorRT converter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inconsistent inference results with ConstantPad2d operator

Thrsu opened this issue · comments

Description:

I'm experiencing a discrepancy between the inference results of my PyTorch model and the TensorRT model obtained by converting it using the torch2trt tool.

Reproduce

This can be reproduced by the following script:

from torch2trt import torch2trt
import torch
from torch.nn import Module

model = torch.nn.ConstantPad2d((1, 2, 3, 4),2.0,).cuda()
input_data = torch.randn([2, 3, 4, 4], dtype=torch.float32).cuda()
model_trt = torch2trt(model, [input_data])
y = model(input_data)
y_trt = model_trt(input_data)

# check the output against PyTorch
print(torch.max(torch.abs(y - y_trt)))

Environment

  • torch: 1.11.0
  • torch2trt: 0.4.0
  • tensorrt: 8.6.1.6

The ReflectionPad2d operator has the same problem, which can be reproduced by the following script:

import torch
from torch.nn import Module
from torch2trt import torch2trt

model = torch.nn.ReflectionPad2d((1, 2, 3, 4),).eval().cuda()
input_data = torch.randn([2, 3, 8, 8], dtype=torch.float32).cuda()
model_trt = torch2trt(model, [input_data])
output = model(input_data)
output_trt = model_trt(input_data)
print(torch.max(torch.abs(output - output_trt)))