File: _example.jsonc

package info (click to toggle)
onnxruntime 1.23.2%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 340,756 kB
  • sloc: cpp: 3,222,136; python: 188,267; ansic: 114,318; asm: 37,927; cs: 36,849; java: 10,962; javascript: 6,811; pascal: 4,126; sh: 2,996; xml: 705; objc: 281; makefile: 67
file content (110 lines) | stat: -rw-r--r-- 3,803 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// This file is an example of an operator test file.
//
// In this file, we demonstrate how to write a test file for ONNX operators.
// There are 2 operator tests defined in this file:
//
//   - "Simple Abs test example": a simple operator test for Abs operator. This example shows how to write a simple test with minimal properties.
//
//   - "Conv2D with padding": a simple operator test for Conv operator with padding. This example shows how to write a test with all optional properties.
//

// test file starts with an array of test objects.
[
  // this is the first operator test object (Abs example).
  {
    "name": "Simple Abs op test example", // name of the test
    "operator": "Abs", // OpType of the operator
    "cases": [
      // in this example, we only have one test case.
      {
        // name of the test case
        "name": "3D float32 test",
        "inputs": [
          // specify the input tensor
          {
            "data": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, -1, -2, -3, -4, -5, -6, -7, -8, 101, 102, 103, 104],
            "dims": [2, 3, 4],
            "type": "float32"
          }
        ],
        "outputs": [
          {
            "data": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 101, 102, 103, 104],
            "dims": [2, 3, 4],
            "type": "float32"
          }
        ]
      }
    ]
  },
  // this is the second operator test object (Conv example).
  {
    // name of the test
    "name": "Conv op test example",

    // OpType of the operator
    "operator": "Conv",

    // [optional] specify the attributes of the operator
    "attributes": [{ "name": "kernel_shape", "data": [2, 2], "type": "ints" }],

    // [optional] specify a regex pattern to match the platform description.
    //
    // If not specified, the test will run on all platforms.
    // Otherwise, the test will only run on platforms that match the pattern.
    "platformCondition": "",

    // [optional] specify input shape definitions.
    //
    // Sometimes, input shape definitions can offer shape information for ONNX Runtime to optimize its inferencing behavior.
    // For example, ORT will transform a NCHW Conv operator into a NHWC operator when the input shape is 4 dimensional.
    // If the input shape dimension is unknown, ORT will not perform this optimization.
    //
    // In operator test, we can specify input shape definitions to test the optimized behavior.
    //
    // The array of input shape definitions should have the same length as the number of model's inputs.
    //
    "inputShapeDefinitions": [
      // input 0 shape definition. use semantic names to specify the dynamic dimensions.
      ["__input_0_dim_0", "__input_0_dim_1", "__input_0_dim_2", "__input_0_dim_3"],
      // input 1 shape definition. use numbers to specify the static dimensions.
      [1, 1, 2, 2]
    ],

    // [optional] specify the opset of the operator.
    "opset": { "domain": "", "version": 13 },

    // test cases is required.
    "cases": [
      {
        "name": "NCHW Conv2D test",
        "inputs": [
          {
            "data": [10, 20, 30, 40, 50, 60, 70, 80, 90],
            "dims": [1, 1, 3, 3],
            "type": "float32"
          },
          // an input or output can be optional, depending on the operator.
          // if an input or output is optional, we can specify it as follows:
          //
          // {
          //   "data": null,
          //   "type": "float32"
          // }
          {
            "data": [1, 2, 3, 4],
            "dims": [1, 1, 2, 2],
            "type": "float32"
          }
        ],
        "outputs": [
          {
            "data": [370, 470, 670, 770],
            "dims": [1, 1, 2, 2],
            "type": "float32"
          }
        ]
      }
    ]
  }
]