onnxruntime/js/web/test/data/ops/simplified-layer-norm.jsonc
Yulong Wang 4385602386
[js/web] fix test runner with optional input/output (#20399)
### Description
fix test runner with optional input/output.

This change fixes the OP test runner (.jsonc format test) with optional
input(s) and/or output(s).

this fix reveals a problem of dealing with optional outputs:

> Take SkipSimplifiedLayerNorm as example: 
>
> if in the ONNX model, the node's outputs are: [ 'output_0', '' ]
instead of [ 'output_0' ], the current implementation will fail. The
difference is, in the first case, context.outputCount == 2, and then the
typescript implementation will try to create a tensor for output[1]. It
will eventually call to C++ function (OpKernelContext::Output), and the
output.DataRaw() will be nullptr. WebGPU backend will fail because it
cannot deal with a TensorView with data == 0.
>

This problem may need to be fixed or workaround in separated PR. This PR
does not fix this problem. Failed test cases are modified to work -
please note this PR does not break those test cases as they never work.
2024-04-22 12:53:10 -07:00

48 lines
1.3 KiB
Text

[
{
"name": "SimplifiedLayerNormalization",
"operator": "SimplifiedLayerNormalization",
"opset": { "domain": "", "version": 16 },
"attributes": [
{
"name": "epsilon",
"data": 1e-5,
"type": "float"
}
],
"inputShapeDefinitions": "rankOnly",
"cases": [
{
"name": "default",
"inputs": [
{
"data": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
"dims": [1, 2, 8],
"type": "float32"
},
{
"data": [2, 2, 2, 2, 2, 2, 2, 2],
"dims": [8],
"type": "float32"
}
],
"outputs": [
{
"data": [
0.39605894684791565, 0.7921178936958313, 1.1881768703460693, 1.5842357873916626, 1.9802948236465454,
2.3763537406921387, 2.7724127769470215, 3.168471574783325, 1.4164010286331177, 1.5737788677215576,
1.731156826019287, 1.888534665107727, 2.045912504196167, 2.2032904624938965, 2.360668420791626,
2.5180463790893555
],
"dims": [1, 2, 8],
"type": "float32"
}
// {
// "data": null,
// "type": "float32"
// }
]
}
]
}
]