Numpy函数,将序列padding到同一长度
(inputs, length=None, padding=0, is_float=False)
| 422 | |
| 423 | |
| 424 | def sequence_padding(inputs, length=None, padding=0, is_float=False): |
| 425 | """Numpy函数,将序列padding到同一长度 |
| 426 | """ |
| 427 | if length is None: |
| 428 | length = max([len(x) for x in inputs]) |
| 429 | |
| 430 | outputs = np.array([ |
| 431 | np.concatenate([x, [padding] * (length - len(x))]) |
| 432 | if len(x) < length else x[:length] for x in inputs |
| 433 | ]) |
| 434 | |
| 435 | out_tensor = torch.FloatTensor(outputs) if is_float \ |
| 436 | else torch.LongTensor(outputs) |
| 437 | return torch.tensor(out_tensor) |
| 438 | |
| 439 | |
| 440 | def batch_gather(data: torch.Tensor, index: torch.Tensor): |
no outgoing calls
no test coverage detected