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 |
}
|