user, item, _, seq, _ = data.next_batch() # data.step += 1 user = user.to(device) # (batch_size,) item = item.to(device) text = seq[:, :1].to(device) # bos, (batch_size, 1) for idx in range(seq.size(1)): # produce a word at each step outputs = model(user, item, text, None) last_token = outputs.logits[:, -1, :] # the last token, (batch_size, ntoken) word_prob = torch.softmax(last_token, dim=-1) token = torch.argmax(word_prob, dim=1, keepdim=True) # (batch_size, 1), pick the one with the largest probability text = torch.cat([text, token], 1) # (batch_size, len++) ids = text[:, 1:].tolist() # remove bos, (batch_size, seq_len) idss_predict.extend(ids) text = torch.cat([text, token], 1)
时间: 2023-05-17 21:04:07 浏览: 135
PyPI 官网下载 | spats_shape_seq-2.0.4.tar.gz
这是一行Python代码,其中data是一个数据集对象,next_batch()是数据集对象的一个方法,用于获取下一批数据。这行代码将返回一个元组,其中包含五个变量:user、item、_、seq和_。其中user和item是表示用户和物品的ID的向量,seq是表示用户历史行为序列的向量,_是一个占位符,表示该位置不需要使用。
阅读全文