al8n's picture
fp16-safe conversions: segmentation fused-logsumexp tail, wespeaker guards to 0x1p-24
3db6998 verified
Raw
History Blame Contribute Delete
29.7 kB
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", "9.0"}})]
{
func main<ios15>(tensor<fp32, [1, 1, 160000]> audio) {
tensor<string, []> audio_to_fp16_dtype_0 = const()[name = tensor<string, []>("audio_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
tensor<fp16, [1]> wav_norm1d_weight_to_fp16 = const()[name = tensor<string, []>("wav_norm1d_weight_to_fp16"), val = tensor<fp16, [1]>([0x1.44p-7])];
tensor<fp16, [1]> wav_norm1d_bias_to_fp16 = const()[name = tensor<string, []>("wav_norm1d_bias_to_fp16"), val = tensor<fp16, [1]>([0x1.734p-5])];
tensor<fp16, []> var_20_to_fp16 = const()[name = tensor<string, []>("op_20_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
tensor<fp16, [1, 1, 160000]> audio_to_fp16 = cast(dtype = audio_to_fp16_dtype_0, x = audio)[name = tensor<string, []>("cast_3")];
tensor<fp16, [1, 1, 160000]> input_1_cast_fp16 = instance_norm(beta = wav_norm1d_bias_to_fp16, epsilon = var_20_to_fp16, gamma = wav_norm1d_weight_to_fp16, x = audio_to_fp16)[name = tensor<string, []>("input_1_cast_fp16")];
tensor<string, []> var_38_pad_type_0 = const()[name = tensor<string, []>("op_38_pad_type_0"), val = tensor<string, []>("valid")];
tensor<int32, [1]> var_38_strides_0 = const()[name = tensor<string, []>("op_38_strides_0"), val = tensor<int32, [1]>([10])];
tensor<int32, [2]> var_38_pad_0 = const()[name = tensor<string, []>("op_38_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<int32, [1]> var_38_dilations_0 = const()[name = tensor<string, []>("op_38_dilations_0"), val = tensor<int32, [1]>([1])];
tensor<int32, []> var_38_groups_0 = const()[name = tensor<string, []>("op_38_groups_0"), val = tensor<int32, []>(1)];
tensor<fp16, [80, 1, 251]> conv0_weight_to_fp16 = const()[name = tensor<string, []>("conv0_weight_to_fp16"), val = tensor<fp16, [80, 1, 251]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
tensor<fp16, [1, 80, 15975]> var_38_cast_fp16 = conv(dilations = var_38_dilations_0, groups = var_38_groups_0, pad = var_38_pad_0, pad_type = var_38_pad_type_0, strides = var_38_strides_0, weight = conv0_weight_to_fp16, x = input_1_cast_fp16)[name = tensor<string, []>("op_38_cast_fp16")];
tensor<fp16, [1, 80, 15975]> input_3_cast_fp16 = abs(x = var_38_cast_fp16)[name = tensor<string, []>("input_3_cast_fp16")];
tensor<int32, [1]> var_44 = const()[name = tensor<string, []>("op_44"), val = tensor<int32, [1]>([3])];
tensor<int32, [1]> var_45 = const()[name = tensor<string, []>("op_45"), val = tensor<int32, [1]>([3])];
tensor<string, []> input_5_pad_type_0 = const()[name = tensor<string, []>("input_5_pad_type_0"), val = tensor<string, []>("custom")];
tensor<int32, [2]> input_5_pad_0 = const()[name = tensor<string, []>("input_5_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<bool, []> input_5_ceil_mode_0 = const()[name = tensor<string, []>("input_5_ceil_mode_0"), val = tensor<bool, []>(false)];
tensor<fp16, [1, 80, 5325]> input_5_cast_fp16 = max_pool(ceil_mode = input_5_ceil_mode_0, kernel_sizes = var_44, pad = input_5_pad_0, pad_type = input_5_pad_type_0, strides = var_45, x = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
tensor<fp16, [80]> norm0_weight_to_fp16 = const()[name = tensor<string, []>("norm0_weight_to_fp16"), val = tensor<fp16, [80]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40320)))];
tensor<fp16, [80]> norm0_bias_to_fp16 = const()[name = tensor<string, []>("norm0_bias_to_fp16"), val = tensor<fp16, [80]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40576)))];
tensor<fp16, []> var_49_to_fp16 = const()[name = tensor<string, []>("op_49_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
tensor<fp16, [1, 80, 5325]> input_7_cast_fp16 = instance_norm(beta = norm0_bias_to_fp16, epsilon = var_49_to_fp16, gamma = norm0_weight_to_fp16, x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
tensor<fp16, []> var_56_to_fp16 = const()[name = tensor<string, []>("op_56_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
tensor<fp16, [1, 80, 5325]> input_9_cast_fp16 = leaky_relu(alpha = var_56_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("input_9_cast_fp16")];
tensor<string, []> input_11_pad_type_0 = const()[name = tensor<string, []>("input_11_pad_type_0"), val = tensor<string, []>("valid")];
tensor<int32, [1]> input_11_strides_0 = const()[name = tensor<string, []>("input_11_strides_0"), val = tensor<int32, [1]>([1])];
tensor<int32, [2]> input_11_pad_0 = const()[name = tensor<string, []>("input_11_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<int32, [1]> input_11_dilations_0 = const()[name = tensor<string, []>("input_11_dilations_0"), val = tensor<int32, [1]>([1])];
tensor<int32, []> input_11_groups_0 = const()[name = tensor<string, []>("input_11_groups_0"), val = tensor<int32, []>(1)];
tensor<fp16, [60, 80, 5]> conv1_weight_to_fp16 = const()[name = tensor<string, []>("conv1_weight_to_fp16"), val = tensor<fp16, [60, 80, 5]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(40832)))];
tensor<fp16, [60]> conv1_bias_to_fp16 = const()[name = tensor<string, []>("conv1_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(88896)))];
tensor<fp16, [1, 60, 5321]> input_11_cast_fp16 = conv(bias = conv1_bias_to_fp16, dilations = input_11_dilations_0, groups = input_11_groups_0, pad = input_11_pad_0, pad_type = input_11_pad_type_0, strides = input_11_strides_0, weight = conv1_weight_to_fp16, x = input_9_cast_fp16)[name = tensor<string, []>("input_11_cast_fp16")];
tensor<int32, [1]> var_73 = const()[name = tensor<string, []>("op_73"), val = tensor<int32, [1]>([3])];
tensor<int32, [1]> var_74 = const()[name = tensor<string, []>("op_74"), val = tensor<int32, [1]>([3])];
tensor<string, []> input_13_pad_type_0 = const()[name = tensor<string, []>("input_13_pad_type_0"), val = tensor<string, []>("custom")];
tensor<int32, [2]> input_13_pad_0 = const()[name = tensor<string, []>("input_13_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<bool, []> input_13_ceil_mode_0 = const()[name = tensor<string, []>("input_13_ceil_mode_0"), val = tensor<bool, []>(false)];
tensor<fp16, [1, 60, 1773]> input_13_cast_fp16 = max_pool(ceil_mode = input_13_ceil_mode_0, kernel_sizes = var_73, pad = input_13_pad_0, pad_type = input_13_pad_type_0, strides = var_74, x = input_11_cast_fp16)[name = tensor<string, []>("input_13_cast_fp16")];
tensor<fp16, [60]> norm1_weight_to_fp16 = const()[name = tensor<string, []>("norm1_weight_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89088)))];
tensor<fp16, [60]> norm1_bias_to_fp16 = const()[name = tensor<string, []>("norm1_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89280)))];
tensor<fp16, []> var_78_to_fp16 = const()[name = tensor<string, []>("op_78_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
tensor<fp16, [1, 60, 1773]> input_15_cast_fp16 = instance_norm(beta = norm1_bias_to_fp16, epsilon = var_78_to_fp16, gamma = norm1_weight_to_fp16, x = input_13_cast_fp16)[name = tensor<string, []>("input_15_cast_fp16")];
tensor<fp16, []> var_85_to_fp16 = const()[name = tensor<string, []>("op_85_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
tensor<fp16, [1, 60, 1773]> input_17_cast_fp16 = leaky_relu(alpha = var_85_to_fp16, x = input_15_cast_fp16)[name = tensor<string, []>("input_17_cast_fp16")];
tensor<string, []> input_19_pad_type_0 = const()[name = tensor<string, []>("input_19_pad_type_0"), val = tensor<string, []>("valid")];
tensor<int32, [1]> input_19_strides_0 = const()[name = tensor<string, []>("input_19_strides_0"), val = tensor<int32, [1]>([1])];
tensor<int32, [2]> input_19_pad_0 = const()[name = tensor<string, []>("input_19_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<int32, [1]> input_19_dilations_0 = const()[name = tensor<string, []>("input_19_dilations_0"), val = tensor<int32, [1]>([1])];
tensor<int32, []> input_19_groups_0 = const()[name = tensor<string, []>("input_19_groups_0"), val = tensor<int32, []>(1)];
tensor<fp16, [60, 60, 5]> conv2_weight_to_fp16 = const()[name = tensor<string, []>("conv2_weight_to_fp16"), val = tensor<fp16, [60, 60, 5]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(89472)))];
tensor<fp16, [60]> conv2_bias_to_fp16 = const()[name = tensor<string, []>("conv2_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125568)))];
tensor<fp16, [1, 60, 1769]> input_19_cast_fp16 = conv(bias = conv2_bias_to_fp16, dilations = input_19_dilations_0, groups = input_19_groups_0, pad = input_19_pad_0, pad_type = input_19_pad_type_0, strides = input_19_strides_0, weight = conv2_weight_to_fp16, x = input_17_cast_fp16)[name = tensor<string, []>("input_19_cast_fp16")];
tensor<int32, [1]> var_102 = const()[name = tensor<string, []>("op_102"), val = tensor<int32, [1]>([3])];
tensor<int32, [1]> var_103 = const()[name = tensor<string, []>("op_103"), val = tensor<int32, [1]>([3])];
tensor<string, []> input_21_pad_type_0 = const()[name = tensor<string, []>("input_21_pad_type_0"), val = tensor<string, []>("custom")];
tensor<int32, [2]> input_21_pad_0 = const()[name = tensor<string, []>("input_21_pad_0"), val = tensor<int32, [2]>([0, 0])];
tensor<bool, []> input_21_ceil_mode_0 = const()[name = tensor<string, []>("input_21_ceil_mode_0"), val = tensor<bool, []>(false)];
tensor<fp16, [1, 60, 589]> input_21_cast_fp16 = max_pool(ceil_mode = input_21_ceil_mode_0, kernel_sizes = var_102, pad = input_21_pad_0, pad_type = input_21_pad_type_0, strides = var_103, x = input_19_cast_fp16)[name = tensor<string, []>("input_21_cast_fp16")];
tensor<fp16, [60]> norm2_weight_to_fp16 = const()[name = tensor<string, []>("norm2_weight_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125760)))];
tensor<fp16, [60]> norm2_bias_to_fp16 = const()[name = tensor<string, []>("norm2_bias_to_fp16"), val = tensor<fp16, [60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(125952)))];
tensor<fp16, []> var_107_to_fp16 = const()[name = tensor<string, []>("op_107_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
tensor<fp16, [1, 60, 589]> input_23_cast_fp16 = instance_norm(beta = norm2_bias_to_fp16, epsilon = var_107_to_fp16, gamma = norm2_weight_to_fp16, x = input_21_cast_fp16)[name = tensor<string, []>("input_23_cast_fp16")];
tensor<fp16, []> var_114_to_fp16 = const()[name = tensor<string, []>("op_114_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
tensor<fp16, [1, 60, 589]> x_3_cast_fp16 = leaky_relu(alpha = var_114_to_fp16, x = input_23_cast_fp16)[name = tensor<string, []>("x_3_cast_fp16")];
tensor<int32, [3]> transpose_0_perm_0 = const()[name = tensor<string, []>("transpose_0_perm_0"), val = tensor<int32, [3]>([2, 0, 1])];
tensor<string, []> transpose_0_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("transpose_0_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
tensor<fp32, [512]> add_0 = const()[name = tensor<string, []>("add_0"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(126144)))];
tensor<fp32, [512]> add_1 = const()[name = tensor<string, []>("add_1"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(128256)))];
tensor<fp32, [512, 60]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<fp32, [512, 60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(130368)))];
tensor<fp32, [512, 128]> concat_5 = const()[name = tensor<string, []>("concat_5"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(253312)))];
tensor<fp32, [512, 60]> concat_6 = const()[name = tensor<string, []>("concat_6"), val = tensor<fp32, [512, 60]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(515520)))];
tensor<fp32, [512, 128]> concat_7 = const()[name = tensor<string, []>("concat_7"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(638464)))];
tensor<fp32, [1, 256]> input_27_batch_first_lstm_h0_reshaped = const()[name = tensor<string, []>("input_27_batch_first_lstm_h0_reshaped"), val = tensor<fp32, [1, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(900672)))];
tensor<string, []> input_27_batch_first_direction_0 = const()[name = tensor<string, []>("input_27_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
tensor<bool, []> input_27_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_27_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
tensor<string, []> input_27_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
tensor<string, []> input_27_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
tensor<string, []> input_27_batch_first_activation_0 = const()[name = tensor<string, []>("input_27_batch_first_activation_0"), val = tensor<string, []>("tanh")];
tensor<fp16, [589, 1, 60]> transpose_0_cast_fp16 = transpose(perm = transpose_0_perm_0, x = x_3_cast_fp16)[name = tensor<string, []>("transpose_2")];
tensor<fp32, [589, 1, 60]> transpose_0_cast_fp16_to_fp32 = cast(dtype = transpose_0_cast_fp16_to_fp32_dtype_0, x = transpose_0_cast_fp16)[name = tensor<string, []>("cast_2")];
tensor<fp32, [589, 1, 256]> input_27_batch_first_0, tensor<fp32, [1, 256]> input_27_batch_first_1, tensor<fp32, [1, 256]> input_27_batch_first_2 = lstm(activation = input_27_batch_first_activation_0, bias = add_0, bias_back = add_1, cell_activation = input_27_batch_first_cell_activation_0, direction = input_27_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_27_batch_first_output_sequence_0, recurrent_activation = input_27_batch_first_recurrent_activation_0, weight_hh = concat_5, weight_hh_back = concat_7, weight_ih = concat_4, weight_ih_back = concat_6, x = transpose_0_cast_fp16_to_fp32)[name = tensor<string, []>("input_27_batch_first")];
tensor<fp32, [512]> add_2 = const()[name = tensor<string, []>("add_2"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(901760)))];
tensor<fp32, [512]> add_3 = const()[name = tensor<string, []>("add_3"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(903872)))];
tensor<fp32, [512, 256]> concat_14 = const()[name = tensor<string, []>("concat_14"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(905984)))];
tensor<fp32, [512, 128]> concat_15 = const()[name = tensor<string, []>("concat_15"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1430336)))];
tensor<fp32, [512, 256]> concat_16 = const()[name = tensor<string, []>("concat_16"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1692544)))];
tensor<fp32, [512, 128]> concat_17 = const()[name = tensor<string, []>("concat_17"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2216896)))];
tensor<string, []> input_29_batch_first_direction_0 = const()[name = tensor<string, []>("input_29_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
tensor<bool, []> input_29_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_29_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
tensor<string, []> input_29_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
tensor<string, []> input_29_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
tensor<string, []> input_29_batch_first_activation_0 = const()[name = tensor<string, []>("input_29_batch_first_activation_0"), val = tensor<string, []>("tanh")];
tensor<fp32, [589, 1, 256]> input_29_batch_first_0, tensor<fp32, [1, 256]> input_29_batch_first_1, tensor<fp32, [1, 256]> input_29_batch_first_2 = lstm(activation = input_29_batch_first_activation_0, bias = add_2, bias_back = add_3, cell_activation = input_29_batch_first_cell_activation_0, direction = input_29_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_29_batch_first_output_sequence_0, recurrent_activation = input_29_batch_first_recurrent_activation_0, weight_hh = concat_15, weight_hh_back = concat_17, weight_ih = concat_14, weight_ih_back = concat_16, x = input_27_batch_first_0)[name = tensor<string, []>("input_29_batch_first")];
tensor<fp32, [512]> add_4 = const()[name = tensor<string, []>("add_4"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2479104)))];
tensor<fp32, [512]> add_5 = const()[name = tensor<string, []>("add_5"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2481216)))];
tensor<fp32, [512, 256]> concat_24 = const()[name = tensor<string, []>("concat_24"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(2483328)))];
tensor<fp32, [512, 128]> concat_25 = const()[name = tensor<string, []>("concat_25"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3007680)))];
tensor<fp32, [512, 256]> concat_26 = const()[name = tensor<string, []>("concat_26"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3269888)))];
tensor<fp32, [512, 128]> concat_27 = const()[name = tensor<string, []>("concat_27"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(3794240)))];
tensor<string, []> input_31_batch_first_direction_0 = const()[name = tensor<string, []>("input_31_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
tensor<bool, []> input_31_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_31_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
tensor<string, []> input_31_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
tensor<string, []> input_31_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
tensor<string, []> input_31_batch_first_activation_0 = const()[name = tensor<string, []>("input_31_batch_first_activation_0"), val = tensor<string, []>("tanh")];
tensor<fp32, [589, 1, 256]> input_31_batch_first_0, tensor<fp32, [1, 256]> input_31_batch_first_1, tensor<fp32, [1, 256]> input_31_batch_first_2 = lstm(activation = input_31_batch_first_activation_0, bias = add_4, bias_back = add_5, cell_activation = input_31_batch_first_cell_activation_0, direction = input_31_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_31_batch_first_output_sequence_0, recurrent_activation = input_31_batch_first_recurrent_activation_0, weight_hh = concat_25, weight_hh_back = concat_27, weight_ih = concat_24, weight_ih_back = concat_26, x = input_29_batch_first_0)[name = tensor<string, []>("input_31_batch_first")];
tensor<fp32, [512]> add_6 = const()[name = tensor<string, []>("add_6"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4056448)))];
tensor<fp32, [512]> add_7 = const()[name = tensor<string, []>("add_7"), val = tensor<fp32, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4058560)))];
tensor<fp32, [512, 256]> concat_34 = const()[name = tensor<string, []>("concat_34"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4060672)))];
tensor<fp32, [512, 128]> concat_35 = const()[name = tensor<string, []>("concat_35"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4585024)))];
tensor<fp32, [512, 256]> concat_36 = const()[name = tensor<string, []>("concat_36"), val = tensor<fp32, [512, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(4847232)))];
tensor<fp32, [512, 128]> concat_37 = const()[name = tensor<string, []>("concat_37"), val = tensor<fp32, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5371584)))];
tensor<string, []> input_33_batch_first_direction_0 = const()[name = tensor<string, []>("input_33_batch_first_direction_0"), val = tensor<string, []>("bidirectional")];
tensor<bool, []> input_33_batch_first_output_sequence_0 = const()[name = tensor<string, []>("input_33_batch_first_output_sequence_0"), val = tensor<bool, []>(true)];
tensor<string, []> input_33_batch_first_recurrent_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_recurrent_activation_0"), val = tensor<string, []>("sigmoid")];
tensor<string, []> input_33_batch_first_cell_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_cell_activation_0"), val = tensor<string, []>("tanh")];
tensor<string, []> input_33_batch_first_activation_0 = const()[name = tensor<string, []>("input_33_batch_first_activation_0"), val = tensor<string, []>("tanh")];
tensor<fp32, [589, 1, 256]> input_33_batch_first_0, tensor<fp32, [1, 256]> input_33_batch_first_1, tensor<fp32, [1, 256]> input_33_batch_first_2 = lstm(activation = input_33_batch_first_activation_0, bias = add_6, bias_back = add_7, cell_activation = input_33_batch_first_cell_activation_0, direction = input_33_batch_first_direction_0, initial_c = input_27_batch_first_lstm_h0_reshaped, initial_h = input_27_batch_first_lstm_h0_reshaped, output_sequence = input_33_batch_first_output_sequence_0, recurrent_activation = input_33_batch_first_recurrent_activation_0, weight_hh = concat_35, weight_hh_back = concat_37, weight_ih = concat_34, weight_ih_back = concat_36, x = input_31_batch_first_0)[name = tensor<string, []>("input_33_batch_first")];
tensor<int32, [3]> input_33_perm_0 = const()[name = tensor<string, []>("input_33_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
tensor<string, []> input_33_batch_first_0_to_fp16_dtype_0 = const()[name = tensor<string, []>("input_33_batch_first_0_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
tensor<fp16, [128, 256]> linear0_weight_to_fp16 = const()[name = tensor<string, []>("linear0_weight_to_fp16"), val = tensor<fp16, [128, 256]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5633792)))];
tensor<fp16, [128]> linear0_bias_to_fp16 = const()[name = tensor<string, []>("linear0_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5699392)))];
tensor<fp16, [589, 1, 256]> input_33_batch_first_0_to_fp16 = cast(dtype = input_33_batch_first_0_to_fp16_dtype_0, x = input_33_batch_first_0)[name = tensor<string, []>("cast_1")];
tensor<fp16, [1, 589, 256]> input_33_cast_fp16 = transpose(perm = input_33_perm_0, x = input_33_batch_first_0_to_fp16)[name = tensor<string, []>("transpose_1")];
tensor<fp16, [1, 589, 128]> linear_0_cast_fp16 = linear(bias = linear0_bias_to_fp16, weight = linear0_weight_to_fp16, x = input_33_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
tensor<fp16, []> var_234_to_fp16 = const()[name = tensor<string, []>("op_234_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
tensor<fp16, [1, 589, 128]> input_37_cast_fp16 = leaky_relu(alpha = var_234_to_fp16, x = linear_0_cast_fp16)[name = tensor<string, []>("input_37_cast_fp16")];
tensor<fp16, [128, 128]> linear1_weight_to_fp16 = const()[name = tensor<string, []>("linear1_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5699712)))];
tensor<fp16, [128]> linear1_bias_to_fp16 = const()[name = tensor<string, []>("linear1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5732544)))];
tensor<fp16, [1, 589, 128]> linear_1_cast_fp16 = linear(bias = linear1_bias_to_fp16, weight = linear1_weight_to_fp16, x = input_37_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
tensor<fp16, []> var_239_to_fp16 = const()[name = tensor<string, []>("op_239_to_fp16"), val = tensor<fp16, []>(0x1.47cp-7)];
tensor<fp16, [1, 589, 128]> input_cast_fp16 = leaky_relu(alpha = var_239_to_fp16, x = linear_1_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
tensor<fp16, [7, 128]> classifier_weight_to_fp16 = const()[name = tensor<string, []>("classifier_weight_to_fp16"), val = tensor<fp16, [7, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(5732864)))];
tensor<fp16, [7]> classifier_bias_to_fp16 = const()[name = tensor<string, []>("classifier_bias_to_fp16"), val = tensor<fp16, [7]>([-0x1.01p+0, 0x1.67cp-2, 0x1.3d8p-1, 0x1.c8cp-2, -0x1.444p-2, -0x1.59p-1, -0x1.8fcp-2])];
tensor<fp16, [1, 589, 7]> linear_2_cast_fp16 = linear(bias = classifier_bias_to_fp16, weight = classifier_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
tensor<int32, [1]> var_247_axes_0 = const()[name = tensor<string, []>("op_247_axes_0"), val = tensor<int32, [1]>([-1])];
tensor<bool, []> var_247_keep_dims_0 = const()[name = tensor<string, []>("op_247_keep_dims_0"), val = tensor<bool, []>(true)];
tensor<fp16, [1, 589, 1]> var_247_cast_fp16 = reduce_log_sum_exp(axes = var_247_axes_0, keep_dims = var_247_keep_dims_0, x = linear_2_cast_fp16)[name = tensor<string, []>("op_247_cast_fp16")];
tensor<fp16, [1, 589, 7]> var_249_cast_fp16 = sub(x = linear_2_cast_fp16, y = var_247_cast_fp16)[name = tensor<string, []>("op_249_cast_fp16")];
tensor<string, []> var_249_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_249_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
tensor<fp32, [1, 589, 7]> segments = cast(dtype = var_249_cast_fp16_to_fp32_dtype_0, x = var_249_cast_fp16)[name = tensor<string, []>("cast_0")];
} -> (segments);
}