{ "model_name": "ls_eend_streaming_step", "task": "streaming_speaker_diarization", "input_names": [ "feat", "inv_count", "dec_inv_count", "conv_cache", "enc0_kv", "enc0_conv", "enc1_kv", "enc1_conv", "enc2_kv", "enc2_conv", "enc3_kv", "enc3_conv", "dec0_kv", "dec1_kv" ], "output_names": [ "pred", "enc0_inc", "enc0_conv_out", "enc1_inc", "enc1_conv_out", "enc2_inc", "enc2_conv_out", "enc3_inc", "enc3_conv_out", "conv_cache_out", "dec0_inc", "dec1_inc" ], "input_shapes": { "feat": [ 1, 1, 345 ], "inv_count": [ 1, 4, 1, 1 ], "dec_inv_count": [ 1, 4, 1, 1 ], "conv_cache": [ 1, 256, 18 ], "enc0_kv": [ 1, 4, 64, 64 ], "enc0_conv": [ 1, 256, 15 ], "enc1_kv": [ 1, 4, 64, 64 ], "enc1_conv": [ 1, 256, 15 ], "enc2_kv": [ 1, 4, 64, 64 ], "enc2_conv": [ 1, 256, 15 ], "enc3_kv": [ 1, 4, 64, 64 ], "enc3_conv": [ 1, 256, 15 ], "dec0_kv": [ 10, 4, 64, 64 ], "dec1_kv": [ 10, 4, 64, 64 ] }, "notes": "frame-wise state model in bounded mean form. Retention states hold the running mean K_t/t instead of the upstream K_t/sqrt(t), so magnitudes stay bounded and a single U16 scale covers the whole recording; the dropped sqrt(t) gain is cancelled exactly by the following affine-free LayerNorm. The graph emits the bounded per-frame increment enc{i}_inc/dec{i}_inc, and the CALLER accumulates mean += (inc-mean)/t in FP32 so quantization error stays per-frame. Caller also feeds inv_count=1/t (encoder) and dec_inv_count=1/t_dec (decoder), and MUST hold decoder state frozen for the first 9 frames (conv warmup) while discarding those preds, matching native StreamingConv1d.", "torch_onnx_one_step_min_cosine": 0.9999998807907104, "torch_onnx_one_step_max_diff": 0.0009765625, "torch_onnx_one_step_output_cosines": [ 1.0000001192092896, 1.0, 1.0000001192092896, 1.0000001192092896, 1.0, 1.0, 0.9999999403953552, 1.0, 0.9999998807907104, 1.0, 1.0, 1.000000238418579 ] }