RNNTJoin with masking
Browse files
    	
        RNNTJoint.mlmodelc/analytics/coremldata.bin
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
             
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            -
            oid sha256: | 
| 3 | 
             
            size 243
         | 
|  | |
| 1 | 
             
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            +
            oid sha256:8e2e71a7aa301d6b972a3a7a4e158f9f6f55161ec0444cb9f55dc633149de40a
         | 
| 3 | 
             
            size 243
         | 
    	
        RNNTJoint.mlmodelc/coremldata.bin
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 | 
             
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            -
            oid sha256: | 
| 3 | 
            -
            size  | 
|  | |
| 1 | 
             
            version https://git-lfs.github.com/spec/v1
         | 
| 2 | 
            +
            oid sha256:77d35499e836cd5226a494eae0fd69d4dd92df161dd50f3c486d6947f5301a5d
         | 
| 3 | 
            +
            size 436
         | 
    	
        RNNTJoint.mlmodelc/metadata.json
    ADDED
    
    | @@ -0,0 +1,100 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            [
         | 
| 2 | 
            +
              {
         | 
| 3 | 
            +
                "metadataOutputVersion" : "3.0",
         | 
| 4 | 
            +
                "storagePrecision" : "Float16",
         | 
| 5 | 
            +
                "outputSchema" : [
         | 
| 6 | 
            +
                  {
         | 
| 7 | 
            +
                    "hasShapeFlexibility" : "0",
         | 
| 8 | 
            +
                    "isOptional" : "0",
         | 
| 9 | 
            +
                    "dataType" : "Float32",
         | 
| 10 | 
            +
                    "formattedType" : "MultiArray (Float32)",
         | 
| 11 | 
            +
                    "shortDescription" : "",
         | 
| 12 | 
            +
                    "shape" : "[]",
         | 
| 13 | 
            +
                    "name" : "logits",
         | 
| 14 | 
            +
                    "type" : "MultiArray"
         | 
| 15 | 
            +
                  }
         | 
| 16 | 
            +
                ],
         | 
| 17 | 
            +
                "modelParameters" : [
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                ],
         | 
| 20 | 
            +
                "specificationVersion" : 6,
         | 
| 21 | 
            +
                "mlProgramOperationTypeHistogram" : {
         | 
| 22 | 
            +
                  "Log" : 1,
         | 
| 23 | 
            +
                  "Concat" : 1,
         | 
| 24 | 
            +
                  "Linear" : 3,
         | 
| 25 | 
            +
                  "Range1d" : 1,
         | 
| 26 | 
            +
                  "Shape" : 2,
         | 
| 27 | 
            +
                  "RealDiv" : 1,
         | 
| 28 | 
            +
                  "Relu" : 1,
         | 
| 29 | 
            +
                  "Mul" : 1,
         | 
| 30 | 
            +
                  "Cast" : 4,
         | 
| 31 | 
            +
                  "Tile" : 1,
         | 
| 32 | 
            +
                  "Add" : 1,
         | 
| 33 | 
            +
                  "ExpandDims" : 5,
         | 
| 34 | 
            +
                  "Softmax" : 1,
         | 
| 35 | 
            +
                  "Gather" : 2,
         | 
| 36 | 
            +
                  "Less" : 1
         | 
| 37 | 
            +
                },
         | 
| 38 | 
            +
                "computePrecision" : "Mixed (Float16, Float32, Int32)",
         | 
| 39 | 
            +
                "isUpdatable" : "0",
         | 
| 40 | 
            +
                "stateSchema" : [
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                ],
         | 
| 43 | 
            +
                "availability" : {
         | 
| 44 | 
            +
                  "macOS" : "12.0",
         | 
| 45 | 
            +
                  "tvOS" : "15.0",
         | 
| 46 | 
            +
                  "visionOS" : "1.0",
         | 
| 47 | 
            +
                  "watchOS" : "8.0",
         | 
| 48 | 
            +
                  "iOS" : "15.0",
         | 
| 49 | 
            +
                  "macCatalyst" : "15.0"
         | 
| 50 | 
            +
                },
         | 
| 51 | 
            +
                "modelType" : {
         | 
| 52 | 
            +
                  "name" : "MLModelType_mlProgram"
         | 
| 53 | 
            +
                },
         | 
| 54 | 
            +
                "userDefinedMetadata" : {
         | 
| 55 | 
            +
                  "com.github.apple.coremltools.source_dialect" : "TorchScript",
         | 
| 56 | 
            +
                  "com.github.apple.coremltools.source" : "torch==2.5.0",
         | 
| 57 | 
            +
                  "com.github.apple.coremltools.version" : "8.3.0"
         | 
| 58 | 
            +
                },
         | 
| 59 | 
            +
                "inputSchema" : [
         | 
| 60 | 
            +
                  {
         | 
| 61 | 
            +
                    "dataType" : "Float32",
         | 
| 62 | 
            +
                    "hasShapeFlexibility" : "1",
         | 
| 63 | 
            +
                    "isOptional" : "0",
         | 
| 64 | 
            +
                    "shapeFlexibility" : "1...100 × 1...1025 × 1024",
         | 
| 65 | 
            +
                    "shapeRange" : "[[1, 100], [1, 1025], [1024, 1024]]",
         | 
| 66 | 
            +
                    "formattedType" : "MultiArray (Float32 1 × 1 × 1024)",
         | 
| 67 | 
            +
                    "type" : "MultiArray",
         | 
| 68 | 
            +
                    "shape" : "[1, 1, 1024]",
         | 
| 69 | 
            +
                    "name" : "encoder_outputs",
         | 
| 70 | 
            +
                    "shortDescription" : ""
         | 
| 71 | 
            +
                  },
         | 
| 72 | 
            +
                  {
         | 
| 73 | 
            +
                    "dataType" : "Float32",
         | 
| 74 | 
            +
                    "hasShapeFlexibility" : "1",
         | 
| 75 | 
            +
                    "isOptional" : "0",
         | 
| 76 | 
            +
                    "shapeFlexibility" : "1...100 × 1...1025 × 640",
         | 
| 77 | 
            +
                    "shapeRange" : "[[1, 100], [1, 1025], [640, 640]]",
         | 
| 78 | 
            +
                    "formattedType" : "MultiArray (Float32 1 × 1 × 640)",
         | 
| 79 | 
            +
                    "type" : "MultiArray",
         | 
| 80 | 
            +
                    "shape" : "[1, 1, 640]",
         | 
| 81 | 
            +
                    "name" : "decoder_outputs",
         | 
| 82 | 
            +
                    "shortDescription" : ""
         | 
| 83 | 
            +
                  },
         | 
| 84 | 
            +
                  {
         | 
| 85 | 
            +
                    "dataType" : "Int32",
         | 
| 86 | 
            +
                    "hasShapeFlexibility" : "1",
         | 
| 87 | 
            +
                    "isOptional" : "0",
         | 
| 88 | 
            +
                    "shapeFlexibility" : "1...100",
         | 
| 89 | 
            +
                    "shapeRange" : "[[1, 100]]",
         | 
| 90 | 
            +
                    "formattedType" : "MultiArray (Int32 1)",
         | 
| 91 | 
            +
                    "type" : "MultiArray",
         | 
| 92 | 
            +
                    "shape" : "[1]",
         | 
| 93 | 
            +
                    "name" : "encoder_length",
         | 
| 94 | 
            +
                    "shortDescription" : ""
         | 
| 95 | 
            +
                  }
         | 
| 96 | 
            +
                ],
         | 
| 97 | 
            +
                "generatedClassName" : "RNNTJointWithMask",
         | 
| 98 | 
            +
                "method" : "predict"
         | 
| 99 | 
            +
              }
         | 
| 100 | 
            +
            ]
         | 
    	
        RNNTJoint.mlmodelc/model.mil
    CHANGED
    
    | @@ -1,31 +1,57 @@ | |
| 1 | 
             
            program(1.0)
         | 
| 2 | 
            -
            [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3405.2.1"}, {"coremlc-version", " | 
| 3 | 
             
            {
         | 
| 4 | 
            -
                func main<ios15>(tensor<fp32, [?, ?,  | 
| 5 | 
             
                        tensor<string, []> encoder_outputs_to_fp16_dtype_0 = const()[name = tensor<string, []>("encoder_outputs_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 6 | 
             
                        tensor<fp16, [640, 1024]> joint_enc_weight_to_fp16 = const()[name = tensor<string, []>("joint_enc_weight_to_fp16"), val = tensor<fp16, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
         | 
| 7 | 
             
                        tensor<fp16, [640]> joint_enc_bias_to_fp16 = const()[name = tensor<string, []>("joint_enc_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1310848)))];
         | 
| 8 | 
            -
                        tensor<fp16, [?, ?,  | 
| 9 | 
            -
                        tensor<fp16, [?, ?, 640]> linear_0_cast_fp16 = linear(bias = joint_enc_bias_to_fp16, weight = joint_enc_weight_to_fp16, x = encoder_outputs_to_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
         | 
| 10 | 
             
                        tensor<string, []> decoder_outputs_to_fp16_dtype_0 = const()[name = tensor<string, []>("decoder_outputs_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
         | 
| 11 | 
             
                        tensor<fp16, [640, 640]> joint_pred_weight_to_fp16 = const()[name = tensor<string, []>("joint_pred_weight_to_fp16"), val = tensor<fp16, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1312192)))];
         | 
| 12 | 
             
                        tensor<fp16, [640]> joint_pred_bias_to_fp16 = const()[name = tensor<string, []>("joint_pred_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2131456)))];
         | 
| 13 | 
            -
                        tensor<fp16, [?, ?,  | 
| 14 | 
             
                        tensor<fp16, [?, ?, 640]> linear_1_cast_fp16 = linear(bias = joint_pred_bias_to_fp16, weight = joint_pred_weight_to_fp16, x = decoder_outputs_to_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
         | 
| 15 | 
             
                        tensor<int32, [1]> f_axes_0 = const()[name = tensor<string, []>("f_axes_0"), val = tensor<int32, [1]>([2])];
         | 
| 16 | 
             
                        tensor<fp16, [?, ?, 1, 640]> f_cast_fp16 = expand_dims(axes = f_axes_0, x = linear_0_cast_fp16)[name = tensor<string, []>("f_cast_fp16")];
         | 
| 17 | 
             
                        tensor<int32, [1]> g_axes_0 = const()[name = tensor<string, []>("g_axes_0"), val = tensor<int32, [1]>([1])];
         | 
| 18 | 
             
                        tensor<fp16, [?, 1, ?, 640]> g_cast_fp16 = expand_dims(axes = g_axes_0, x = linear_1_cast_fp16)[name = tensor<string, []>("g_cast_fp16")];
         | 
| 19 | 
            -
                        tensor<fp16, [?, ?, ?, 640]>  | 
| 20 | 
            -
                        tensor<fp16, [?, ?, ?, 640]>  | 
| 21 | 
             
                        tensor<fp16, [8198, 640]> joint_joint_net_2_weight_to_fp16 = const()[name = tensor<string, []>("joint_joint_net_2_weight_to_fp16"), val = tensor<fp16, [8198, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2132800)))];
         | 
| 22 | 
             
                        tensor<fp16, [8198]> joint_joint_net_2_bias_to_fp16 = const()[name = tensor<string, []>("joint_joint_net_2_bias_to_fp16"), val = tensor<fp16, [8198]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(12626304)))];
         | 
| 23 | 
            -
                        tensor<fp16, [?, ?, ?, 8198]> linear_2_cast_fp16 = linear(bias = joint_joint_net_2_bias_to_fp16, weight = joint_joint_net_2_weight_to_fp16, x =  | 
| 24 | 
            -
                        tensor<int32, []>  | 
| 25 | 
            -
                        tensor<fp16, [?, ?, ?, 8198]>  | 
| 26 | 
            -
                        tensor<fp16, []>  | 
| 27 | 
            -
                        tensor<fp16, [?, ?, ?, 8198]>  | 
| 28 | 
            -
                        tensor<string, []>  | 
| 29 | 
            -
                        tensor<fp32, [?, ?, ?, 8198]> logits = cast(dtype =  | 
| 30 | 
             
                    } -> (logits);
         | 
| 31 | 
             
            }
         | 
|  | |
| 1 | 
             
            program(1.0)
         | 
| 2 | 
            +
            [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3405.2.1"}, {"coremlc-version", "3404.23.1"}, {"coremltools-component-torch", "2.5.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "8.3.0"}})]
         | 
| 3 | 
             
            {
         | 
| 4 | 
            +
                func main<ios15>(tensor<fp32, [?, ?, 640]> decoder_outputs, tensor<int32, [?]> encoder_length, tensor<fp32, [?, ?, 1024]> encoder_outputs) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, list<tensor<int32, [2]>, ?>>>>((("DefaultShapes", {{"decoder_outputs", [1, 1, 640]}, {"encoder_length", [1]}, {"encoder_outputs", [1, 1, 1024]}}), ("RangeDims", {{"decoder_outputs", [[1, 100], [1, 1025], [640, 640]]}, {"encoder_length", [[1, 100]]}, {"encoder_outputs", [[1, 100], [1, 1025], [1024, 1024]]}})))] {
         | 
| 5 | 
             
                        tensor<string, []> encoder_outputs_to_fp16_dtype_0 = const()[name = tensor<string, []>("encoder_outputs_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
         | 
| 6 | 
            +
                        tensor<fp16, [?, ?, 1024]> encoder_outputs_to_fp16 = cast(dtype = encoder_outputs_to_fp16_dtype_0, x = encoder_outputs)[name = tensor<string, []>("cast_5")];
         | 
| 7 | 
            +
                        tensor<int32, [3]> var_11_shape_cast_fp16 = shape(x = encoder_outputs_to_fp16)[name = tensor<string, []>("op_11_shape_cast_fp16")];
         | 
| 8 | 
            +
                        tensor<int32, []> gather_0_indices_0 = const()[name = tensor<string, []>("gather_0_indices_0"), val = tensor<int32, []>(0)];
         | 
| 9 | 
            +
                        tensor<int32, []> gather_0_axis_0 = const()[name = tensor<string, []>("gather_0_axis_0"), val = tensor<int32, []>(0)];
         | 
| 10 | 
            +
                        tensor<int32, []> gather_0 = gather(axis = gather_0_axis_0, indices = gather_0_indices_0, x = var_11_shape_cast_fp16)[name = tensor<string, []>("gather_0")];
         | 
| 11 | 
            +
                        tensor<int32, []> gather_1_indices_0 = const()[name = tensor<string, []>("gather_1_indices_0"), val = tensor<int32, []>(1)];
         | 
| 12 | 
            +
                        tensor<int32, []> gather_1_axis_0 = const()[name = tensor<string, []>("gather_1_axis_0"), val = tensor<int32, []>(0)];
         | 
| 13 | 
            +
                        tensor<int32, []> gather_1 = gather(axis = gather_1_axis_0, indices = gather_1_indices_0, x = var_11_shape_cast_fp16)[name = tensor<string, []>("gather_1")];
         | 
| 14 | 
            +
                        tensor<int32, []> const_0 = const()[name = tensor<string, []>("const_0"), val = tensor<int32, []>(0)];
         | 
| 15 | 
            +
                        tensor<int32, []> const_1 = const()[name = tensor<string, []>("const_1"), val = tensor<int32, []>(1)];
         | 
| 16 | 
            +
                        tensor<int32, [?]> time_indices_1 = range_1d(end = gather_1, start = const_0, step = const_1)[name = tensor<string, []>("time_indices_1")];
         | 
| 17 | 
            +
                        tensor<int32, [1]> var_25_axes_0 = const()[name = tensor<string, []>("op_25_axes_0"), val = tensor<int32, [1]>([0])];
         | 
| 18 | 
            +
                        tensor<int32, [1, ?]> var_25 = expand_dims(axes = var_25_axes_0, x = time_indices_1)[name = tensor<string, []>("op_25")];
         | 
| 19 | 
            +
                        tensor<int32, []> concat_0_axis_0 = const()[name = tensor<string, []>("concat_0_axis_0"), val = tensor<int32, []>(0)];
         | 
| 20 | 
            +
                        tensor<bool, []> concat_0_interleave_0 = const()[name = tensor<string, []>("concat_0_interleave_0"), val = tensor<bool, []>(false)];
         | 
| 21 | 
            +
                        tensor<int32, [2]> concat_0 = concat(axis = concat_0_axis_0, interleave = concat_0_interleave_0, values = (gather_0, gather_1))[name = tensor<string, []>("concat_0")];
         | 
| 22 | 
            +
                        tensor<int32, [2]> shape_0 = shape(x = var_25)[name = tensor<string, []>("shape_0")];
         | 
| 23 | 
            +
                        tensor<int32, [2]> real_div_0 = real_div(x = concat_0, y = shape_0)[name = tensor<string, []>("real_div_0")];
         | 
| 24 | 
            +
                        tensor<int32, [?, ?]> time_indices = tile(reps = real_div_0, x = var_25)[name = tensor<string, []>("time_indices")];
         | 
| 25 | 
            +
                        tensor<int32, [1]> encoder_length_expanded_axes_0 = const()[name = tensor<string, []>("encoder_length_expanded_axes_0"), val = tensor<int32, [1]>([1])];
         | 
| 26 | 
            +
                        tensor<int32, [?, 1]> encoder_length_expanded = expand_dims(axes = encoder_length_expanded_axes_0, x = encoder_length)[name = tensor<string, []>("encoder_length_expanded")];
         | 
| 27 | 
            +
                        tensor<bool, [?, ?]> encoder_mask = less(x = time_indices, y = encoder_length_expanded)[name = tensor<string, []>("encoder_mask")];
         | 
| 28 | 
            +
                        tensor<int32, [1]> var_33_axes_0 = const()[name = tensor<string, []>("op_33_axes_0"), val = tensor<int32, [1]>([-1])];
         | 
| 29 | 
            +
                        tensor<bool, [?, ?, 1]> var_33 = expand_dims(axes = var_33_axes_0, x = encoder_mask)[name = tensor<string, []>("op_33")];
         | 
| 30 | 
            +
                        tensor<string, []> cast_1_to_fp16_dtype_0 = const()[name = tensor<string, []>("cast_1_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
         | 
| 31 | 
            +
                        tensor<fp16, [?, ?, 1]> var_33_to_fp16 = cast(dtype = cast_1_to_fp16_dtype_0, x = var_33)[name = tensor<string, []>("cast_4")];
         | 
| 32 | 
            +
                        tensor<fp16, [?, ?, 1024]> input_1_cast_fp16 = mul(x = encoder_outputs_to_fp16, y = var_33_to_fp16)[name = tensor<string, []>("input_1_cast_fp16")];
         | 
| 33 | 
             
                        tensor<fp16, [640, 1024]> joint_enc_weight_to_fp16 = const()[name = tensor<string, []>("joint_enc_weight_to_fp16"), val = tensor<fp16, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
         | 
| 34 | 
             
                        tensor<fp16, [640]> joint_enc_bias_to_fp16 = const()[name = tensor<string, []>("joint_enc_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1310848)))];
         | 
| 35 | 
            +
                        tensor<fp16, [?, ?, 640]> linear_0_cast_fp16 = linear(bias = joint_enc_bias_to_fp16, weight = joint_enc_weight_to_fp16, x = input_1_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
         | 
|  | |
| 36 | 
             
                        tensor<string, []> decoder_outputs_to_fp16_dtype_0 = const()[name = tensor<string, []>("decoder_outputs_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
         | 
| 37 | 
             
                        tensor<fp16, [640, 640]> joint_pred_weight_to_fp16 = const()[name = tensor<string, []>("joint_pred_weight_to_fp16"), val = tensor<fp16, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1312192)))];
         | 
| 38 | 
             
                        tensor<fp16, [640]> joint_pred_bias_to_fp16 = const()[name = tensor<string, []>("joint_pred_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2131456)))];
         | 
| 39 | 
            +
                        tensor<fp16, [?, ?, 640]> decoder_outputs_to_fp16 = cast(dtype = decoder_outputs_to_fp16_dtype_0, x = decoder_outputs)[name = tensor<string, []>("cast_3")];
         | 
| 40 | 
             
                        tensor<fp16, [?, ?, 640]> linear_1_cast_fp16 = linear(bias = joint_pred_bias_to_fp16, weight = joint_pred_weight_to_fp16, x = decoder_outputs_to_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
         | 
| 41 | 
             
                        tensor<int32, [1]> f_axes_0 = const()[name = tensor<string, []>("f_axes_0"), val = tensor<int32, [1]>([2])];
         | 
| 42 | 
             
                        tensor<fp16, [?, ?, 1, 640]> f_cast_fp16 = expand_dims(axes = f_axes_0, x = linear_0_cast_fp16)[name = tensor<string, []>("f_cast_fp16")];
         | 
| 43 | 
             
                        tensor<int32, [1]> g_axes_0 = const()[name = tensor<string, []>("g_axes_0"), val = tensor<int32, [1]>([1])];
         | 
| 44 | 
             
                        tensor<fp16, [?, 1, ?, 640]> g_cast_fp16 = expand_dims(axes = g_axes_0, x = linear_1_cast_fp16)[name = tensor<string, []>("g_cast_fp16")];
         | 
| 45 | 
            +
                        tensor<fp16, [?, ?, ?, 640]> input_3_cast_fp16 = add(x = f_cast_fp16, y = g_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
         | 
| 46 | 
            +
                        tensor<fp16, [?, ?, ?, 640]> input_5_cast_fp16 = relu(x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
         | 
| 47 | 
             
                        tensor<fp16, [8198, 640]> joint_joint_net_2_weight_to_fp16 = const()[name = tensor<string, []>("joint_joint_net_2_weight_to_fp16"), val = tensor<fp16, [8198, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2132800)))];
         | 
| 48 | 
             
                        tensor<fp16, [8198]> joint_joint_net_2_bias_to_fp16 = const()[name = tensor<string, []>("joint_joint_net_2_bias_to_fp16"), val = tensor<fp16, [8198]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(12626304)))];
         | 
| 49 | 
            +
                        tensor<fp16, [?, ?, ?, 8198]> linear_2_cast_fp16 = linear(bias = joint_joint_net_2_bias_to_fp16, weight = joint_joint_net_2_weight_to_fp16, x = input_5_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
         | 
| 50 | 
            +
                        tensor<int32, []> var_60 = const()[name = tensor<string, []>("op_60"), val = tensor<int32, []>(-1)];
         | 
| 51 | 
            +
                        tensor<fp16, [?, ?, ?, 8198]> var_62_softmax_cast_fp16 = softmax(axis = var_60, x = linear_2_cast_fp16)[name = tensor<string, []>("op_62_softmax_cast_fp16")];
         | 
| 52 | 
            +
                        tensor<fp16, []> var_62_epsilon_0_to_fp16 = const()[name = tensor<string, []>("op_62_epsilon_0_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
         | 
| 53 | 
            +
                        tensor<fp16, [?, ?, ?, 8198]> var_62_cast_fp16 = log(epsilon = var_62_epsilon_0_to_fp16, x = var_62_softmax_cast_fp16)[name = tensor<string, []>("op_62_cast_fp16")];
         | 
| 54 | 
            +
                        tensor<string, []> var_62_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_62_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
         | 
| 55 | 
            +
                        tensor<fp32, [?, ?, ?, 8198]> logits = cast(dtype = var_62_cast_fp16_to_fp32_dtype_0, x = var_62_cast_fp16)[name = tensor<string, []>("cast_2")];
         | 
| 56 | 
             
                    } -> (logits);
         | 
| 57 | 
             
            }
         | 

