onnxruntime/js/web/lib/onnxjs
Seungwon Jeong 307ad1413a
[js/web] support 'pytorch_half_pixel' mode for WebGL kernel 'Resize' (#11208)
**Description**: 
1. add pytorch_half_pixel interpolation mode in resize-packed.ts
Changes: add the following case in createPackedResizeProgramInfo
function:
```
case 'pytorch_half_pixel':
          getSourceFracIndex = `
                    vec4 getSourceFracIndex(ivec4 coords) {
                        vec4 fcoords = vec4(coords);
                        return vec4(
                            ${outputWidth}.0 > 1.0 ? (fcoords.x + 0.5) / scaleWHWH.x - 0.5 : 0.0,
                            ${outputHeight}.0 > 1.0 ? (fcoords.y + 0.5) / scaleWHWH.y - 0.5 : 0.0,
                            ${outputWidth}.0 > 1.0 ? (fcoords.z + 0.5) / scaleWHWH.z - 0.5 : 0.0,
                            ${outputHeight}.0 > 1.0 ? (fcoords.w + 0.5) / scaleWHWH.w - 0.5 : 0.0
                          );
                    }
                `;
          break;
```
2. fix "unrecognized input '' for node: Resize_$num" error when inputs
like [input_tensor, None, scale_factor] (roiInput not given) are fed
into the resize layer.
Changes: change in input handling logic in upsample.ts & node scanning
logic in graph.ts

**Motivation and Context**
Before this fix, we aren't able to use webGL backend when the neural
network contains pytorch resize layers. This fix adds
'pytorch_half_pixel' interpolation mode support and makes it possible to
use webGL backend for more kind of computer vision networks.

This commit solves:
#10430

Co-authored-by: neo <neo@icode-lab.com>
Co-authored-by: Yulong Wang <7679871+fs-eire@users.noreply.github.com>
2022-11-21 12:03:48 -08:00
..
backends [js/web] support 'pytorch_half_pixel' mode for WebGL kernel 'Resize' (#11208) 2022-11-21 12:03:48 -08:00
ort-schema
attribute-with-cache-key.ts [js/web] WebGL backend refactor (#8586) 2021-08-12 12:30:49 -07:00
attribute.ts [js] upgrade async@3.2.3 /js/ (#11421) 2022-05-03 23:41:36 -07:00
backend.ts
execution-plan.ts Adding async fetching for webgl backend (#8951) 2021-09-09 22:17:42 -07:00
graph.ts [js/web] support 'pytorch_half_pixel' mode for WebGL kernel 'Resize' (#11208) 2022-11-21 12:03:48 -08:00
instrument.ts [JS]moved logging level flag to global env (#7700) 2021-05-17 14:16:59 -07:00
model.ts [js] upgrade async@3.2.3 /js/ (#11421) 2022-05-03 23:41:36 -07:00
operators.ts [js/web] WebGL backend refactor (#8586) 2021-08-12 12:30:49 -07:00
opset.ts [js/web] Support WebGL for ort format models in benchmarks (#9661) 2021-11-09 11:58:47 -08:00
session-handler.ts [js] upgrade async@3.2.3 /js/ (#11421) 2022-05-03 23:41:36 -07:00
session.ts [js/web] do not use nodejs type 'Buffer' in web (#9839) 2021-11-24 14:14:42 -08:00
tensor.ts [js] upgrade async@3.2.3 /js/ (#11421) 2022-05-03 23:41:36 -07:00
util.ts replace 'master' branch ref to 'main' for onnx repo (#12678) 2022-08-30 13:41:42 -07:00