【发布时间】:2020-03-14 16:49:17
【问题描述】:
我想做一个用于预订餐厅的面向任务的对话聊天机器人。因为每个对话都有不同的序列(例如,有些对话有 5 轮对话,即 10 个句子,而另一些对话可能有 6 轮对话,即 12 个句子完全),我不知道如何批处理数据集。
你能给我一些教程或github例子吗?
【问题讨论】:
标签: pytorch
我想做一个用于预订餐厅的面向任务的对话聊天机器人。因为每个对话都有不同的序列(例如,有些对话有 5 轮对话,即 10 个句子,而另一些对话可能有 6 轮对话,即 12 个句子完全),我不知道如何批处理数据集。
你能给我一些教程或github例子吗?
【问题讨论】:
标签: pytorch
Stackoverflow 上有一些与此相关的问题。我喜欢here 提供的解释/答案。 tldr 版本是使用Packed Sequence。 The answer I linked to 提供以下示例(从链接复制):
a = [torch.tensor([1,2,3]), torch.tensor([3,4])]
b = torch.nn.utils.rnn.pad_sequence(a, batch_first=True)
>>>>
tensor([[ 1, 2, 3],
[ 3, 4, 0]])
torch.nn.utils.rnn.pack_padded_sequence(b, batch_first=True, lengths=[3,2])
>>>>PackedSequence(data=tensor([ 1, 3, 2, 4, 3]), batch_sizes=tensor([ 2, 2, 1]))
【讨论】: