mirror of
https://github.com/k2-fsa/icefall.git
synced 2025-08-08 17:42:21 +00:00
remove if-branch at downsample pad in zipformer for onnx-export compatibility (#965)
This commit is contained in:
parent
d74822d07b
commit
f260a09ed4
@ -781,13 +781,12 @@ class AttentionDownsample(torch.nn.Module):
|
|||||||
ds = self.downsample
|
ds = self.downsample
|
||||||
d_seq_len = (seq_len + ds - 1) // ds
|
d_seq_len = (seq_len + ds - 1) // ds
|
||||||
|
|
||||||
# Pad to an exact multiple of self.downsample
|
# Pad to an exact multiple of self.downsample, could be 0 for onnx-export-compatibility
|
||||||
if seq_len != d_seq_len * ds:
|
# right-pad src, repeating the last element.
|
||||||
# right-pad src, repeating the last element.
|
pad = d_seq_len * ds - seq_len
|
||||||
pad = d_seq_len * ds - seq_len
|
src_extra = src[src.shape[0] - 1 :].expand(pad, src.shape[1], src.shape[2])
|
||||||
src_extra = src[src.shape[0] - 1 :].expand(pad, src.shape[1], src.shape[2])
|
src = torch.cat((src, src_extra), dim=0)
|
||||||
src = torch.cat((src, src_extra), dim=0)
|
assert src.shape[0] == d_seq_len * ds, (src.shape[0], d_seq_len, ds)
|
||||||
assert src.shape[0] == d_seq_len * ds, (src.shape[0], d_seq_len, ds)
|
|
||||||
|
|
||||||
src = src.reshape(d_seq_len, ds, batch_size, in_channels)
|
src = src.reshape(d_seq_len, ds, batch_size, in_channels)
|
||||||
scores = (src * self.query).sum(dim=-1, keepdim=True)
|
scores = (src * self.query).sum(dim=-1, keepdim=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user