def bilinear_sampler(img, coords, mode='bilinear', mask=False): """ Wrapper for grid_sample, uses pixel coordinates """ H, W = img.shape[-2:] xgrid, ygrid = coords.split([1,1], dim=-1) xgrid = 2*xgrid/(W-1) - 1 if H > 1: ygrid = 2*ygrid/(H-1) - 1 grid = torch.cat([xgrid, ygrid], dim=-1) img = F.grid_sample(img, grid, align_corners=True) if mask: mask = (xgrid > -1) & (ygrid > -1) & (xgrid < 1) & (ygrid < 1) return img, mask.float() return img
需要部署的原始代码如上,平台仅支持opset11,改为opset11,onnx生成失败,报错如下,如果用opset16虽然onnx转换成功,但是模型量化失败。查看论坛,官方对grid_sample算在转onnx时已做了优化,请问该如何调用