python迭代器工具itertools,用起来很方便!
官网说的很详细了:
https://docs.python.org/3/library/itertools.html
在序列建模准备数据的时候,为了在一个batch里面可以包含不同长度的序列,一般需要对较短序列加padding。常用到itertools.zip_longest。
torch.tensor(list(itertools.zip_longest([1,4,7,3,6,3], [4,7,3],[5,4],fillvalue=0)))
out:
tensor([[1, 4, 5],
[4, 7, 4],
[7, 3, 0],
[3, 0, 0],
[6, 0, 0],
[3, 0, 0]])