File size: 15,801 Bytes
7e5bf05
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
program(1.0)
[buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3520.4.1"}, {"coremlc-version", "3520.5.1"}, {"coremltools-component-torch", "2.5.1"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "8.3.0"}})]
{
    func main<ios17>(tensor<fp32, [2, 1, 640]> c_in, tensor<fp32, [1, 1024, 1]> encoder, tensor<fp32, [2, 1, 640]> h_in, tensor<int32, [1, 1]> token, tensor<int32, [1]> token_length) {
            tensor<int32, []> y_axis_0 = const()[name = tensor<string, []>("y_axis_0"), val = tensor<int32, []>(0)];
            tensor<int32, []> y_batch_dims_0 = const()[name = tensor<string, []>("y_batch_dims_0"), val = tensor<int32, []>(0)];
            tensor<bool, []> y_validate_indices_0 = const()[name = tensor<string, []>("y_validate_indices_0"), val = tensor<bool, []>(false)];
            tensor<fp16, [13088, 640]> decoder_module_prediction_embed_weight_to_fp16 = const()[name = tensor<string, []>("decoder_module_prediction_embed_weight_to_fp16"), val = tensor<fp16, [13088, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
            tensor<string, []> token_to_int16_dtype_0 = const()[name = tensor<string, []>("token_to_int16_dtype_0"), val = tensor<string, []>("int16")];
            tensor<int16, [1, 1]> token_to_int16 = cast(dtype = token_to_int16_dtype_0, x = token)[name = tensor<string, []>("cast_9")];
            tensor<fp16, [1, 1, 640]> y_cast_fp16_cast_uint16 = gather(axis = y_axis_0, batch_dims = y_batch_dims_0, indices = token_to_int16, validate_indices = y_validate_indices_0, x = decoder_module_prediction_embed_weight_to_fp16)[name = tensor<string, []>("y_cast_fp16_cast_uint16")];
            tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
            tensor<int32, []> split_0_num_splits_0 = const()[name = tensor<string, []>("split_0_num_splits_0"), val = tensor<int32, []>(2)];
            tensor<int32, []> split_0_axis_0 = const()[name = tensor<string, []>("split_0_axis_0"), val = tensor<int32, []>(0)];
            tensor<string, []> h_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("h_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
            tensor<fp16, [2, 1, 640]> h_in_to_fp16 = cast(dtype = h_in_to_fp16_dtype_0, x = h_in)[name = tensor<string, []>("cast_8")];
            tensor<fp16, [1, 1, 640]> split_0_cast_fp16_0, tensor<fp16, [1, 1, 640]> split_0_cast_fp16_1 = split(axis = split_0_axis_0, num_splits = split_0_num_splits_0, x = h_in_to_fp16)[name = tensor<string, []>("split_0_cast_fp16")];
            tensor<int32, []> split_1_num_splits_0 = const()[name = tensor<string, []>("split_1_num_splits_0"), val = tensor<int32, []>(2)];
            tensor<int32, []> split_1_axis_0 = const()[name = tensor<string, []>("split_1_axis_0"), val = tensor<int32, []>(0)];
            tensor<string, []> c_in_to_fp16_dtype_0 = const()[name = tensor<string, []>("c_in_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
            tensor<fp16, [2, 1, 640]> c_in_to_fp16 = cast(dtype = c_in_to_fp16_dtype_0, x = c_in)[name = tensor<string, []>("cast_7")];
            tensor<fp16, [1, 1, 640]> split_1_cast_fp16_0, tensor<fp16, [1, 1, 640]> split_1_cast_fp16_1 = split(axis = split_1_axis_0, num_splits = split_1_num_splits_0, x = c_in_to_fp16)[name = tensor<string, []>("split_1_cast_fp16")];
            tensor<int32, [1]> input_5_lstm_layer_0_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
            tensor<fp16, [1, 640]> input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_layer_0_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_0)[name = tensor<string, []>("input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16")];
            tensor<int32, [1]> input_5_lstm_layer_0_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
            tensor<fp16, [1, 640]> input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_layer_0_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_0)[name = tensor<string, []>("input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16")];
            tensor<string, []> input_5_lstm_layer_0_direction_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_direction_0"), val = tensor<string, []>("forward")];
            tensor<bool, []> input_5_lstm_layer_0_output_sequence_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_output_sequence_0"), val = tensor<bool, []>(true)];
            tensor<string, []> input_5_lstm_layer_0_recurrent_activation_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
            tensor<string, []> input_5_lstm_layer_0_cell_activation_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_cell_activation_0"), val = tensor<string, []>("tanh")];
            tensor<string, []> input_5_lstm_layer_0_activation_0 = const()[name = tensor<string, []>("input_5_lstm_layer_0_activation_0"), val = tensor<string, []>("tanh")];
            tensor<fp16, [2560, 640]> concat_1_to_fp16 = const()[name = tensor<string, []>("concat_1_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(16752768)))];
            tensor<fp16, [2560, 640]> concat_2_to_fp16 = const()[name = tensor<string, []>("concat_2_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(20029632)))];
            tensor<fp16, [2560]> concat_0_to_fp16 = const()[name = tensor<string, []>("concat_0_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(23306496)))];
            tensor<fp16, [1, 1, 640]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = y_cast_fp16_cast_uint16)[name = tensor<string, []>("transpose_4")];
            tensor<fp16, [1, 1, 640]> input_5_lstm_layer_0_cast_fp16_0, tensor<fp16, [1, 640]> input_5_lstm_layer_0_cast_fp16_1, tensor<fp16, [1, 640]> input_5_lstm_layer_0_cast_fp16_2 = lstm(activation = input_5_lstm_layer_0_activation_0, bias = concat_0_to_fp16, cell_activation = input_5_lstm_layer_0_cell_activation_0, direction = input_5_lstm_layer_0_direction_0, initial_c = input_5_lstm_layer_0_lstm_c0_squeeze_cast_fp16, initial_h = input_5_lstm_layer_0_lstm_h0_squeeze_cast_fp16, output_sequence = input_5_lstm_layer_0_output_sequence_0, recurrent_activation = input_5_lstm_layer_0_recurrent_activation_0, weight_hh = concat_2_to_fp16, weight_ih = concat_1_to_fp16, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_lstm_layer_0_cast_fp16")];
            tensor<int32, [1]> input_5_lstm_h0_squeeze_axes_0 = const()[name = tensor<string, []>("input_5_lstm_h0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
            tensor<fp16, [1, 640]> input_5_lstm_h0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_h0_squeeze_axes_0, x = split_0_cast_fp16_1)[name = tensor<string, []>("input_5_lstm_h0_squeeze_cast_fp16")];
            tensor<int32, [1]> input_5_lstm_c0_squeeze_axes_0 = const()[name = tensor<string, []>("input_5_lstm_c0_squeeze_axes_0"), val = tensor<int32, [1]>([0])];
            tensor<fp16, [1, 640]> input_5_lstm_c0_squeeze_cast_fp16 = squeeze(axes = input_5_lstm_c0_squeeze_axes_0, x = split_1_cast_fp16_1)[name = tensor<string, []>("input_5_lstm_c0_squeeze_cast_fp16")];
            tensor<string, []> input_5_direction_0 = const()[name = tensor<string, []>("input_5_direction_0"), val = tensor<string, []>("forward")];
            tensor<bool, []> input_5_output_sequence_0 = const()[name = tensor<string, []>("input_5_output_sequence_0"), val = tensor<bool, []>(true)];
            tensor<string, []> input_5_recurrent_activation_0 = const()[name = tensor<string, []>("input_5_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
            tensor<string, []> input_5_cell_activation_0 = const()[name = tensor<string, []>("input_5_cell_activation_0"), val = tensor<string, []>("tanh")];
            tensor<string, []> input_5_activation_0 = const()[name = tensor<string, []>("input_5_activation_0"), val = tensor<string, []>("tanh")];
            tensor<fp16, [2560, 640]> concat_4_to_fp16 = const()[name = tensor<string, []>("concat_4_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(23311680)))];
            tensor<fp16, [2560, 640]> concat_5_to_fp16 = const()[name = tensor<string, []>("concat_5_to_fp16"), val = tensor<fp16, [2560, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(26588544)))];
            tensor<fp16, [2560]> concat_3_to_fp16 = const()[name = tensor<string, []>("concat_3_to_fp16"), val = tensor<fp16, [2560]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(29865408)))];
            tensor<fp16, [1, 1, 640]> input_5_cast_fp16_0, tensor<fp16, [1, 640]> input_5_cast_fp16_1, tensor<fp16, [1, 640]> input_5_cast_fp16_2 = lstm(activation = input_5_activation_0, bias = concat_3_to_fp16, cell_activation = input_5_cell_activation_0, direction = input_5_direction_0, initial_c = input_5_lstm_c0_squeeze_cast_fp16, initial_h = input_5_lstm_h0_squeeze_cast_fp16, output_sequence = input_5_output_sequence_0, recurrent_activation = input_5_recurrent_activation_0, weight_hh = concat_5_to_fp16, weight_ih = concat_4_to_fp16, x = input_5_lstm_layer_0_cast_fp16_0)[name = tensor<string, []>("input_5_cast_fp16")];
            tensor<int32, []> obj_3_axis_0 = const()[name = tensor<string, []>("obj_3_axis_0"), val = tensor<int32, []>(0)];
            tensor<fp16, [2, 1, 640]> obj_3_cast_fp16 = stack(axis = obj_3_axis_0, values = (input_5_lstm_layer_0_cast_fp16_1, input_5_cast_fp16_1))[name = tensor<string, []>("obj_3_cast_fp16")];
            tensor<string, []> obj_3_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("obj_3_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
            tensor<int32, []> obj_axis_0 = const()[name = tensor<string, []>("obj_axis_0"), val = tensor<int32, []>(0)];
            tensor<fp16, [2, 1, 640]> obj_cast_fp16 = stack(axis = obj_axis_0, values = (input_5_lstm_layer_0_cast_fp16_2, input_5_cast_fp16_2))[name = tensor<string, []>("obj_cast_fp16")];
            tensor<string, []> obj_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("obj_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
            tensor<int32, [3]> transpose_1_perm_0 = const()[name = tensor<string, []>("transpose_1_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
            tensor<int32, [3]> input_7_perm_0 = const()[name = tensor<string, []>("input_7_perm_0"), val = tensor<int32, [3]>([0, 2, 1])];
            tensor<string, []> encoder_to_fp16_dtype_0 = const()[name = tensor<string, []>("encoder_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
            tensor<fp16, [640, 1024]> joint_module_enc_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_enc_weight_to_fp16"), val = tensor<fp16, [640, 1024]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(29870592)))];
            tensor<fp16, [640]> joint_module_enc_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_enc_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(31181376)))];
            tensor<fp16, [1, 1024, 1]> encoder_to_fp16 = cast(dtype = encoder_to_fp16_dtype_0, x = encoder)[name = tensor<string, []>("cast_4")];
            tensor<fp16, [1, 1, 1024]> input_7_cast_fp16 = transpose(perm = input_7_perm_0, x = encoder_to_fp16)[name = tensor<string, []>("transpose_2")];
            tensor<fp16, [1, 1, 640]> linear_0_cast_fp16 = linear(bias = joint_module_enc_bias_to_fp16, weight = joint_module_enc_weight_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
            tensor<fp16, [640, 640]> joint_module_pred_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_pred_weight_to_fp16"), val = tensor<fp16, [640, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(31182720)))];
            tensor<fp16, [640]> joint_module_pred_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_pred_bias_to_fp16"), val = tensor<fp16, [640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(32001984)))];
            tensor<fp16, [1, 1, 640]> transpose_1_cast_fp16 = transpose(perm = transpose_1_perm_0, x = input_5_cast_fp16_0)[name = tensor<string, []>("transpose_3")];
            tensor<fp16, [1, 1, 640]> linear_1_cast_fp16 = linear(bias = joint_module_pred_bias_to_fp16, weight = joint_module_pred_weight_to_fp16, x = transpose_1_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
            tensor<int32, [1]> var_79_axes_0 = const()[name = tensor<string, []>("op_79_axes_0"), val = tensor<int32, [1]>([2])];
            tensor<fp16, [1, 1, 1, 640]> var_79_cast_fp16 = expand_dims(axes = var_79_axes_0, x = linear_0_cast_fp16)[name = tensor<string, []>("op_79_cast_fp16")];
            tensor<int32, [1]> var_80_axes_0 = const()[name = tensor<string, []>("op_80_axes_0"), val = tensor<int32, [1]>([1])];
            tensor<fp16, [1, 1, 1, 640]> var_80_cast_fp16 = expand_dims(axes = var_80_axes_0, x = linear_1_cast_fp16)[name = tensor<string, []>("op_80_cast_fp16")];
            tensor<fp16, [1, 1, 1, 640]> input_11_cast_fp16 = add(x = var_79_cast_fp16, y = var_80_cast_fp16)[name = tensor<string, []>("input_11_cast_fp16")];
            tensor<fp16, [1, 1, 1, 640]> input_13_cast_fp16 = relu(x = input_11_cast_fp16)[name = tensor<string, []>("input_13_cast_fp16")];
            tensor<fp16, [13088, 640]> joint_module_joint_net_2_weight_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_weight_to_fp16"), val = tensor<fp16, [13088, 640]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(32003328)))];
            tensor<fp16, [13088]> joint_module_joint_net_2_bias_to_fp16 = const()[name = tensor<string, []>("joint_module_joint_net_2_bias_to_fp16"), val = tensor<fp16, [13088]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(48756032)))];
            tensor<fp16, [1, 1, 1, 13088]> linear_2_cast_fp16 = linear(bias = joint_module_joint_net_2_bias_to_fp16, weight = joint_module_joint_net_2_weight_to_fp16, x = input_13_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
            tensor<string, []> linear_2_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("linear_2_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
            tensor<fp32, [1, 1, 1, 13088]> logits = cast(dtype = linear_2_cast_fp16_to_fp32_dtype_0, x = linear_2_cast_fp16)[name = tensor<string, []>("cast_3")];
            tensor<fp32, [2, 1, 640]> c_out = cast(dtype = obj_cast_fp16_to_fp32_dtype_0, x = obj_cast_fp16)[name = tensor<string, []>("cast_5")];
            tensor<fp32, [2, 1, 640]> h_out = cast(dtype = obj_3_cast_fp16_to_fp32_dtype_0, x = obj_3_cast_fp16)[name = tensor<string, []>("cast_6")];
            tensor<int32, [1]> token_length_tmp = identity(x = token_length)[name = tensor<string, []>("token_length_tmp")];
        } -> (logits, h_out, c_out);
}