tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

instance_normalization.https.any.js (25309B)


      1 // META: title=test WebNN API instanceNormalization operation
      2 // META: global=window
      3 // META: variant=?cpu
      4 // META: variant=?gpu
      5 // META: variant=?npu
      6 // META: script=../resources/utils.js
      7 // META: timeout=long
      8 
      9 'use strict';
     10 
     11 // https://www.w3.org/TR/webnn/#api-mlgraphbuilder-instancenorm
     12 // Normalize the input using Instance-Normalization.
     13 //
     14 // dictionary MLInstanceNormalizationOptions {
     15 //   MLOperand scale;
     16 //   MLOperand bias;
     17 //   double epsilon = 1e-5;
     18 //   MLInputOperandLayout layout = "nchw";
     19 // };
     20 //
     21 // MLOperand instanceNormalization(
     22 //     MLOperand input, optional MLInstanceNormalizationOptions options = {});
     23 
     24 const instanceNormTests = [
     25  {
     26    'name': 'instanceNormalization float32 4D tensor default options',
     27    'graph': {
     28      'inputs': {
     29        'instanceNormInput': {
     30          'data': [
     31            -97.949951171875,    29.44037628173828,  -73.92131042480469,
     32            -38.11185836791992,  41.33772659301758,  -59.77853012084961,
     33            -74.66901397705078,  -68.16508483886719, 35.82481384277344,
     34            -6.948329448699951,  54.42462158203125,  47.53074645996094,
     35            66.93562316894531,   76.74034881591797,  5.6758809089660645,
     36            25.68659210205078,   37.37651062011719,  56.252689361572266,
     37            -16.574905395507812, 42.949893951416016, 73.8739242553711,
     38            -99.00035095214844,  -33.11322784423828, -17.380685806274414
     39          ],
     40          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
     41        }
     42      },
     43      'operators': [{
     44        'name': 'instanceNormalization',
     45        'arguments': [{'input': 'instanceNormInput'}],
     46        'outputs': 'instanceNormOutput'
     47      }],
     48      'expectedOutputs': {
     49        'instanceNormOutput': {
     50          'data': [
     51            -1.0995290279388428, 1.5525832176208496,  -0.5992818474769592,
     52            0.14622758328914642, 1.72129487991333,    -0.41020718216896057,
     53            -0.7240943908691406, -0.586993396282196,  0.13073226809501648,
     54            -1.6633318662643433, 0.9108771681785583,  0.6217224597930908,
     55            0.7947131395339966,  1.1309205293655396,  -1.3059037923812866,
     56            -0.6197298169136047, 0.2657700479030609,  0.9459608793258667,
     57            -1.6783342361450195, 0.46660327911376953, 1.5037200450897217,
     58            -1.2981476783752441, -0.2302791178226471, 0.024706769734621048
     59          ],
     60          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
     61        }
     62      }
     63    }
     64  },
     65  {
     66    'name': 'instanceNormalization float32 4D tensor options.scale',
     67    'graph': {
     68      'inputs': {
     69        'instanceNormInput': {
     70          'data': [
     71            -97.949951171875,    29.44037628173828,  -73.92131042480469,
     72            -38.11185836791992,  41.33772659301758,  -59.77853012084961,
     73            -74.66901397705078,  -68.16508483886719, 35.82481384277344,
     74            -6.948329448699951,  54.42462158203125,  47.53074645996094,
     75            66.93562316894531,   76.74034881591797,  5.6758809089660645,
     76            25.68659210205078,   37.37651062011719,  56.252689361572266,
     77            -16.574905395507812, 42.949893951416016, 73.8739242553711,
     78            -99.00035095214844,  -33.11322784423828, -17.380685806274414
     79          ],
     80          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
     81        },
     82        'instanceNormScale': {
     83          'data': [-94.42772674560547, 66.69620513916016, -98.56572723388672],
     84          'descriptor': {shape: [3], dataType: 'float32'},
     85          'constant': true
     86        }
     87      },
     88      'operators': [{
     89        'name': 'instanceNormalization',
     90        'arguments': [
     91          {'input': 'instanceNormInput'},
     92          {'options': {'scale': 'instanceNormScale'}}
     93        ],
     94        'outputs': 'instanceNormOutput'
     95      }],
     96      'expectedOutputs': {
     97        'instanceNormOutput': {
     98          'data': [
     99            103.8260269165039,   -146.60690307617188, 56.58882141113281,
    100            -13.807937622070312, 114.80384063720703,  -27.359262466430664,
    101            -48.29434585571289,  -39.150230407714844, -12.885721206665039,
    102            163.94752502441406,  -89.78126525878906,  -61.2805290222168,
    103            -75.04296112060547,  -106.79025268554688, 123.31352996826172,
    104            58.51968002319336,   17.725852966308594,  63.09199905395508,
    105            -111.93852233886719, 31.120668411254883,  -148.2152557373047,
    106            127.95286560058594,  22.697628021240234,  -2.4352407455444336
    107          ],
    108          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    109        }
    110      }
    111    }
    112  },
    113  {
    114    'name': 'instanceNormalization float32 4D tensor options.bias',
    115    'graph': {
    116      'inputs': {
    117        'instanceNormInput': {
    118          'data': [
    119            -97.949951171875,    29.44037628173828,  -73.92131042480469,
    120            -38.11185836791992,  41.33772659301758,  -59.77853012084961,
    121            -74.66901397705078,  -68.16508483886719, 35.82481384277344,
    122            -6.948329448699951,  54.42462158203125,  47.53074645996094,
    123            66.93562316894531,   76.74034881591797,  5.6758809089660645,
    124            25.68659210205078,   37.37651062011719,  56.252689361572266,
    125            -16.574905395507812, 42.949893951416016, 73.8739242553711,
    126            -99.00035095214844,  -33.11322784423828, -17.380685806274414
    127          ],
    128          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    129        },
    130        'instanceNormBias': {
    131          'data': [-33.048641204833984, 4.511423587799072, -37.93617248535156],
    132          'descriptor': {shape: [3], dataType: 'float32'},
    133          'constant': true
    134        }
    135      },
    136      'operators': [{
    137        'name': 'instanceNormalization',
    138        'arguments': [
    139          {'input': 'instanceNormInput'},
    140          {'options': {'bias': 'instanceNormBias'}}
    141        ],
    142        'outputs': 'instanceNormOutput'
    143      }],
    144      'expectedOutputs': {
    145        'instanceNormOutput': {
    146          'data': [
    147            -34.148170471191406, -31.496057510375977, -33.64792251586914,
    148            -32.90241241455078,  6.232718467712402,   4.1012163162231445,
    149            3.7873291969299316,  3.9244301319122314,  -37.80543899536133,
    150            -39.59950256347656,  -37.02529525756836,  -37.314449310302734,
    151            -32.253929138183594, -31.917720794677734, -34.35454559326172,
    152            -33.66836929321289,  4.777193546295166,   5.4573845863342285,
    153            2.8330893516540527,  4.978026866912842,   -36.43245315551758,
    154            -39.23432159423828,  -38.16645050048828,  -37.91146469116211
    155          ],
    156          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    157        }
    158      }
    159    }
    160  },
    161  {
    162    'name': 'instanceNormalization float32 4D tensor options.epsilon',
    163    'graph': {
    164      'inputs': {
    165        'instanceNormInput': {
    166          'data': [
    167            -97.949951171875,    29.44037628173828,  -73.92131042480469,
    168            -38.11185836791992,  41.33772659301758,  -59.77853012084961,
    169            -74.66901397705078,  -68.16508483886719, 35.82481384277344,
    170            -6.948329448699951,  54.42462158203125,  47.53074645996094,
    171            66.93562316894531,   76.74034881591797,  5.6758809089660645,
    172            25.68659210205078,   37.37651062011719,  56.252689361572266,
    173            -16.574905395507812, 42.949893951416016, 73.8739242553711,
    174            -99.00035095214844,  -33.11322784423828, -17.380685806274414
    175          ],
    176          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    177        }
    178      },
    179      'operators': [{
    180        'name': 'instanceNormalization',
    181        'arguments': [
    182          {'input': 'instanceNormInput'}, {'options': {'epsilon': 0.000001}}
    183        ],
    184        'outputs': 'instanceNormOutput'
    185      }],
    186      'expectedOutputs': {
    187        'instanceNormOutput': {
    188          'data': [
    189            -1.0995290279388428, 1.5525832176208496,  -0.5992818474769592,
    190            0.14622758328914642, 1.72129487991333,    -0.41020718216896057,
    191            -0.7240943908691406, -0.586993396282196,  0.13073226809501648,
    192            -1.6633318662643433, 0.9108771681785583,  0.6217224597930908,
    193            0.7947131991386414,  1.1309205293655396,  -1.3059037923812866,
    194            -0.6197298765182495, 0.2657700479030609,  0.9459608793258667,
    195            -1.6783342361450195, 0.46660327911376953, 1.5037200450897217,
    196            -1.2981476783752441, -0.2302791178226471, 0.024706769734621048
    197          ],
    198          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    199        }
    200      }
    201    }
    202  },
    203  {
    204    'name':
    205        'instanceNormalization float32 4D tensor explicit options.layout=\'nchw\'',
    206    'graph': {
    207      'inputs': {
    208        'instanceNormInput': {
    209          'data': [
    210            -97.949951171875,    29.44037628173828,  -73.92131042480469,
    211            -38.11185836791992,  41.33772659301758,  -59.77853012084961,
    212            -74.66901397705078,  -68.16508483886719, 35.82481384277344,
    213            -6.948329448699951,  54.42462158203125,  47.53074645996094,
    214            66.93562316894531,   76.74034881591797,  5.6758809089660645,
    215            25.68659210205078,   37.37651062011719,  56.252689361572266,
    216            -16.574905395507812, 42.949893951416016, 73.8739242553711,
    217            -99.00035095214844,  -33.11322784423828, -17.380685806274414
    218          ],
    219          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    220        }
    221      },
    222      'operators': [{
    223        'name': 'instanceNormalization',
    224        'arguments':
    225            [{'input': 'instanceNormInput'}, {'options': {'layout': 'nchw'}}],
    226        'outputs': 'instanceNormOutput'
    227      }],
    228      'expectedOutputs': {
    229        'instanceNormOutput': {
    230          'data': [
    231            -1.0995290279388428, 1.5525832176208496,  -0.5992818474769592,
    232            0.14622758328914642, 1.72129487991333,    -0.41020718216896057,
    233            -0.7240943908691406, -0.586993396282196,  0.13073226809501648,
    234            -1.6633318662643433, 0.9108771681785583,  0.6217224597930908,
    235            0.7947131395339966,  1.1309205293655396,  -1.3059037923812866,
    236            -0.6197298169136047, 0.2657700479030609,  0.9459608793258667,
    237            -1.6783342361450195, 0.46660327911376953, 1.5037200450897217,
    238            -1.2981476783752441, -0.2302791178226471, 0.024706769734621048
    239          ],
    240          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float32'}
    241        }
    242      }
    243    }
    244  },
    245  {
    246    'name': 'instanceNormalization float32 4D tensor options.layout=\'nhwc\'',
    247    'graph': {
    248      'inputs': {
    249        'instanceNormInput': {
    250          'data': [
    251            -97.949951171875,   41.33772659301758,   35.82481384277344,
    252            29.44037628173828,  -59.77853012084961,  -6.948329448699951,
    253            -73.92131042480469, -74.66901397705078,  54.42462158203125,
    254            -38.11185836791992, -68.16508483886719,  47.53074645996094,
    255            66.93562316894531,  37.37651062011719,   73.8739242553711,
    256            76.74034881591797,  56.252689361572266,  -99.00035095214844,
    257            5.6758809089660645, -16.574905395507812, -33.11322784423828,
    258            25.68659210205078,  42.949893951416016,  -17.380685806274414
    259          ],
    260          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float32'}
    261        }
    262      },
    263      'operators': [{
    264        'name': 'instanceNormalization',
    265        'arguments':
    266            [{'input': 'instanceNormInput'}, {'options': {'layout': 'nhwc'}}],
    267        'outputs': 'instanceNormOutput'
    268      }],
    269      'expectedOutputs': {
    270        'instanceNormOutput': {
    271          'data': [
    272            -1.0995290279388428, 1.72129487991333,     0.13073226809501648,
    273            1.5525832176208496,  -0.41020718216896057, -1.6633318662643433,
    274            -0.5992818474769592, -0.7240943908691406,  0.9108771681785583,
    275            0.14622758328914642, -0.586993396282196,   0.6217224597930908,
    276            0.7947131395339966,  0.2657700479030609,   1.5037200450897217,
    277            1.1309205293655396,  0.9459608793258667,   -1.2981476783752441,
    278            -1.3059037923812866, -1.6783342361450195,  -0.2302791178226471,
    279            -0.6197298169136047, 0.46660327911376953,  0.024706769734621048
    280          ],
    281          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float32'}
    282        }
    283      }
    284    }
    285  },
    286  {
    287    'name': 'instanceNormalization float32 4D tensor all options',
    288    'graph': {
    289      'inputs': {
    290        'instanceNormInput': {
    291          'data': [
    292            -97.949951171875,   41.33772659301758,   35.82481384277344,
    293            29.44037628173828,  -59.77853012084961,  -6.948329448699951,
    294            -73.92131042480469, -74.66901397705078,  54.42462158203125,
    295            -38.11185836791992, -68.16508483886719,  47.53074645996094,
    296            66.93562316894531,  37.37651062011719,   73.8739242553711,
    297            76.74034881591797,  56.252689361572266,  -99.00035095214844,
    298            5.6758809089660645, -16.574905395507812, -33.11322784423828,
    299            25.68659210205078,  42.949893951416016,  -17.380685806274414
    300          ],
    301          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float32'}
    302        },
    303        'instanceNormScale': {
    304          'data': [-94.42772674560547, 66.69620513916016, -98.56572723388672],
    305          'descriptor': {shape: [3], dataType: 'float32'},
    306          'constant': true
    307        },
    308        'instanceNormBias': {
    309          'data': [-33.048641204833984, 4.511423587799072, -37.93617248535156],
    310          'descriptor': {shape: [3], dataType: 'float32'},
    311          'constant': true
    312        }
    313      },
    314      'operators': [{
    315        'name': 'instanceNormalization',
    316        'arguments': [
    317          {'input': 'instanceNormInput'}, {
    318            'options': {
    319              'scale': 'instanceNormScale',
    320              'bias': 'instanceNormBias',
    321              'epsilon': 0.000001,
    322              'layout': 'nhwc'
    323            }
    324          }
    325        ],
    326        'outputs': 'instanceNormOutput'
    327      }],
    328      'expectedOutputs': {
    329        'instanceNormOutput': {
    330          'data': [
    331            70.77738189697266,   119.31526184082031,  -50.821895599365234,
    332            -179.65554809570312, -22.847837448120117, 126.01134490966797,
    333            23.540178298950195,  -43.782920837402344, -127.71744537353516,
    334            -46.8565788269043,   -34.6388053894043,   -99.2166976928711,
    335            -108.09159851074219, 22.237276077270508,  -186.15142822265625,
    336            -139.83889770507812, 67.60342407226562,   90.01669311523438,
    337            90.26488494873047,   -107.4271011352539,  -15.238543510437012,
    338            25.471038818359375,  35.6320915222168,    -40.37141418457031
    339          ],
    340          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float32'}
    341        }
    342      }
    343    }
    344  },
    345 
    346  // float16 tests
    347  {
    348    'name': 'instanceNormalization float16 4D tensor default options',
    349    'graph': {
    350      'inputs': {
    351        'instanceNormInput': {
    352          'data': [
    353            -97.9375,   29.4375,  -73.9375,   -38.125,     41.34375, -59.78125,
    354            -74.6875,   -68.1875, 35.8125,    -6.94921875, 54.4375,  47.53125,
    355            66.9375,    76.75,    5.67578125, 25.6875,     37.375,   56.25,
    356            -16.578125, 42.9375,  73.875,     -99,         -33.125,  -17.375
    357          ],
    358          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    359        }
    360      },
    361      'operators': [{
    362        'name': 'instanceNormalization',
    363        'arguments': [{'input': 'instanceNormInput'}],
    364        'outputs': 'instanceNormOutput'
    365      }],
    366      'expectedOutputs': {
    367        'instanceNormOutput': {
    368          'data': [
    369            -1.099609375,    1.552734375,    -0.599609375,
    370            0.1461181640625, 1.7216796875,   -0.409912109375,
    371            -0.72412109375,  -0.5869140625,  0.1302490234375,
    372            -1.6630859375,   0.9111328125,   0.62158203125,
    373            0.79443359375,   1.130859375,    -1.3056640625,
    374            -0.61962890625,  0.265869140625, 0.9462890625,
    375            -1.6787109375,   0.46630859375,  1.50390625,
    376            -1.2978515625,   -0.23046875,    0.024810791015625
    377          ],
    378          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    379        }
    380      }
    381    }
    382  },
    383  {
    384    'name': 'instanceNormalization float16 4D tensor options.scale',
    385    'graph': {
    386      'inputs': {
    387        'instanceNormInput': {
    388          'data': [
    389            -97.9375,   29.4375,  -73.9375,   -38.125,     41.34375, -59.78125,
    390            -74.6875,   -68.1875, 35.8125,    -6.94921875, 54.4375,  47.53125,
    391            66.9375,    76.75,    5.67578125, 25.6875,     37.375,   56.25,
    392            -16.578125, 42.9375,  73.875,     -99,         -33.125,  -17.375
    393          ],
    394          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    395        },
    396        'instanceNormScale': {
    397          'data': [-94.4375, 66.6875, -98.5625],
    398          'descriptor': {shape: [3], dataType: 'float16'},
    399          'constant': true
    400        }
    401      },
    402      'operators': [{
    403        'name': 'instanceNormalization',
    404        'arguments': [
    405          {'input': 'instanceNormInput'},
    406          {'options': {'scale': 'instanceNormScale'}}
    407        ],
    408        'outputs': 'instanceNormOutput'
    409      }],
    410      'expectedOutputs': {
    411        'instanceNormOutput': {
    412          'data': [
    413            103.8125,  -146.625,  56.625,    -13.796875,  114.8125,
    414            -27.34375, -48.28125, -39.15625, -12.8359375, 163.875,
    415            -89.8125,  -61.28125, -75.0625,  -106.8125,   123.3125,
    416            58.53125,  17.734375, 63.09375,  -111.9375,   31.09375,
    417            -148.25,   127.9375,  22.71875,  -2.4453125
    418          ],
    419          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    420        }
    421      }
    422    }
    423  },
    424  {
    425    'name': 'instanceNormalization float16 4D tensor options.bias',
    426    'graph': {
    427      'inputs': {
    428        'instanceNormInput': {
    429          'data': [
    430            -97.9375,   29.4375,  -73.9375,   -38.125,     41.34375, -59.78125,
    431            -74.6875,   -68.1875, 35.8125,    -6.94921875, 54.4375,  47.53125,
    432            66.9375,    76.75,    5.67578125, 25.6875,     37.375,   56.25,
    433            -16.578125, 42.9375,  73.875,     -99,         -33.125,  -17.375
    434          ],
    435          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    436        },
    437        'instanceNormBias': {
    438          'data': [-33.0625, 4.51171875, -37.9375],
    439          'descriptor': {shape: [3], dataType: 'float16'},
    440          'constant': true
    441        }
    442      },
    443      'operators': [{
    444        'name': 'instanceNormalization',
    445        'arguments': [
    446          {'input': 'instanceNormInput'},
    447          {'options': {'bias': 'instanceNormBias'}}
    448        ],
    449        'outputs': 'instanceNormOutput'
    450      }],
    451      'expectedOutputs': {
    452        'instanceNormOutput': {
    453          'data': [
    454            -34.15625, -31.515625,  -33.65625,   -32.90625,   6.234375,
    455            4.1015625, 3.787109375, 3.923828125, -37.8125,    -39.59375,
    456            -37.03125, -37.3125,    -32.28125,   -31.9375,    -34.375,
    457            -33.6875,  4.77734375,  5.45703125,  2.833984375, 4.9765625,
    458            -36.4375,  -39.25,      -38.15625,   -37.90625
    459          ],
    460          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    461        }
    462      }
    463    }
    464  },
    465  {
    466    'name': 'instanceNormalization float16 4D tensor options.epsilon',
    467    'graph': {
    468      'inputs': {
    469        'instanceNormInput': {
    470          'data': [
    471            -97.9375,   29.4375,  -73.9375,   -38.125,     41.34375, -59.78125,
    472            -74.6875,   -68.1875, 35.8125,    -6.94921875, 54.4375,  47.53125,
    473            66.9375,    76.75,    5.67578125, 25.6875,     37.375,   56.25,
    474            -16.578125, 42.9375,  73.875,     -99,         -33.125,  -17.375
    475          ],
    476          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    477        }
    478      },
    479      'operators': [{
    480        'name': 'instanceNormalization',
    481        'arguments': [
    482          {'input': 'instanceNormInput'}, {'options': {'epsilon': 0.000001}}
    483        ],
    484        'outputs': 'instanceNormOutput'
    485      }],
    486      'expectedOutputs': {
    487        'instanceNormOutput': {
    488          'data': [
    489            -1.099609375,    1.552734375,    -0.599609375,
    490            0.1461181640625, 1.7216796875,   -0.409912109375,
    491            -0.72412109375,  -0.5869140625,  0.1302490234375,
    492            -1.6630859375,   0.9111328125,   0.62158203125,
    493            0.79443359375,   1.130859375,    -1.3056640625,
    494            -0.61962890625,  0.265869140625, 0.9462890625,
    495            -1.6787109375,   0.46630859375,  1.50390625,
    496            -1.2978515625,   -0.23046875,    0.024810791015625
    497          ],
    498          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    499        }
    500      }
    501    }
    502  },
    503  {
    504    'name':
    505        'instanceNormalization float16 4D tensor explicit options.layout=\'nchw\'',
    506    'graph': {
    507      'inputs': {
    508        'instanceNormInput': {
    509          'data': [
    510            -97.9375,   29.4375,  -73.9375,   -38.125,     41.34375, -59.78125,
    511            -74.6875,   -68.1875, 35.8125,    -6.94921875, 54.4375,  47.53125,
    512            66.9375,    76.75,    5.67578125, 25.6875,     37.375,   56.25,
    513            -16.578125, 42.9375,  73.875,     -99,         -33.125,  -17.375
    514          ],
    515          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    516        }
    517      },
    518      'operators': [{
    519        'name': 'instanceNormalization',
    520        'arguments':
    521            [{'input': 'instanceNormInput'}, {'options': {'layout': 'nchw'}}],
    522        'outputs': 'instanceNormOutput'
    523      }],
    524      'expectedOutputs': {
    525        'instanceNormOutput': {
    526          'data': [
    527            -1.099609375,    1.552734375,    -0.599609375,
    528            0.1461181640625, 1.7216796875,   -0.409912109375,
    529            -0.72412109375,  -0.5869140625,  0.1302490234375,
    530            -1.6630859375,   0.9111328125,   0.62158203125,
    531            0.79443359375,   1.130859375,    -1.3056640625,
    532            -0.61962890625,  0.265869140625, 0.9462890625,
    533            -1.6787109375,   0.46630859375,  1.50390625,
    534            -1.2978515625,   -0.23046875,    0.024810791015625
    535          ],
    536          'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
    537        }
    538      }
    539    }
    540  },
    541  {
    542    'name': 'instanceNormalization float16 4D tensor options.layout=\'nhwc\'',
    543    'graph': {
    544      'inputs': {
    545        'instanceNormInput': {
    546          'data': [
    547            -97.9375,   41.34375,   35.8125, 29.4375, -59.78125, -6.94921875,
    548            -73.9375,   -74.6875,   54.4375, -38.125, -68.1875,  47.53125,
    549            66.9375,    37.375,     73.875,  76.75,   56.25,     -99,
    550            5.67578125, -16.578125, -33.125, 25.6875, 42.9375,   -17.375
    551          ],
    552          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
    553        }
    554      },
    555      'operators': [{
    556        'name': 'instanceNormalization',
    557        'arguments':
    558            [{'input': 'instanceNormInput'}, {'options': {'layout': 'nhwc'}}],
    559        'outputs': 'instanceNormOutput'
    560      }],
    561      'expectedOutputs': {
    562        'instanceNormOutput': {
    563          'data': [
    564            -1.099609375,    1.7216796875,    0.1302490234375,
    565            1.552734375,     -0.409912109375, -1.6630859375,
    566            -0.599609375,    -0.72412109375,  0.9111328125,
    567            0.1461181640625, -0.5869140625,   0.62158203125,
    568            0.79443359375,   0.265869140625,  1.50390625,
    569            1.130859375,     0.9462890625,    -1.2978515625,
    570            -1.3056640625,   -1.6787109375,   -0.23046875,
    571            -0.61962890625,  0.46630859375,   0.024810791015625
    572          ],
    573          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
    574        }
    575      }
    576    }
    577  },
    578  {
    579    'name': 'instanceNormalization float16 4D tensor all options',
    580    'graph': {
    581      'inputs': {
    582        'instanceNormInput': {
    583          'data': [
    584            -97.9375,   41.34375,   35.8125, 29.4375, -59.78125, -6.94921875,
    585            -73.9375,   -74.6875,   54.4375, -38.125, -68.1875,  47.53125,
    586            66.9375,    37.375,     73.875,  76.75,   56.25,     -99,
    587            5.67578125, -16.578125, -33.125, 25.6875, 42.9375,   -17.375
    588          ],
    589          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
    590        },
    591        'instanceNormScale': {
    592          'data': [-94.4375, 66.6875, -98.5625],
    593          'descriptor': {shape: [3], dataType: 'float16'},
    594          'constant': true
    595        },
    596        'instanceNormBias': {
    597          'data': [-33.0625, 4.51171875, -37.9375],
    598          'descriptor': {shape: [3], dataType: 'float16'},
    599          'constant': true
    600        }
    601      },
    602      'operators': [{
    603        'name': 'instanceNormalization',
    604        'arguments': [
    605          {'input': 'instanceNormInput'}, {
    606            'options': {
    607              'scale': 'instanceNormScale',
    608              'bias': 'instanceNormBias',
    609              'epsilon': 0.000001,
    610              'layout': 'nhwc'
    611            }
    612          }
    613        ],
    614        'outputs': 'instanceNormOutput'
    615      }],
    616      'expectedOutputs': {
    617        'instanceNormOutput': {
    618          'data': [
    619            70.75,    119.3125,  -50.78125,   -179.75,   -22.828125, 126,
    620            23.5625,  -43.78125, -127.75,     -46.84375, -34.65625,  -99.1875,
    621            -108.125, 22.25,     -186.125,    -139.875,  67.625,     90,
    622            90.25,    -107.4375, -15.2265625, 25.46875,  35.625,     -40.375
    623          ],
    624          'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
    625        }
    626      }
    627    }
    628  }
    629 ];
    630 
    631 webnn_conformance_test(
    632    instanceNormTests, buildAndExecuteGraph, getInstanceNormPrecisionTolerance);