Infersent: 运行编码器/play.ipynb 时出错

创建于 2017-07-07  ·  3评论  ·  资料来源: facebookresearch/InferSent

当我运行以下几行时:

embeddings = model.encode(sentences, bsize=128, tokenize=False,verbose=True)
print('nb 句子编码:{0}'.format(len(embeddings)))

我收到以下错误:

Nb 字保留:128201/130068 (98.56 %)

RuntimeError Traceback(最近一次调用)
()
----> 1 embeddings = model.encode(sentences, bsize=128, tokenize=False,verbose=True)
2 print('nb 句子编码:{0}'.format(len(embeddings)))

/home/leena/Downloads/InferSent-master/encoder/models.py in encode(self,句子,bsize,tokenize,verbose)
第177话
第178话
--> 179 batch = self.forward((batch, lengths[stidx:stidx + bsize])).data.cpu().numpy()
180 embeddings.append(batch)
181 个嵌入 = np.vstack(嵌入)

/home/leena/Downloads/InferSent-master/encoder/models.py in forward(self, sent_tuple)
48
49 # 不按长度排序
---> 50 idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)
51 sent_output = sent_output.index_select(1,变量(idx_unsort))
52

RuntimeError: from_numpy 需要 np.ndarray 但得到了 torch.LongTensor

版本详情:
'3.6.0 |Anaconda 自定义(64 位)| (默认,2016 年 12 月 23 日,12:22:00)\n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'
在 [ ]:
火炬-0.1.12.post2

最有用的评论

有一个小错误。 行号 50 应该是:

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)

代替,

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)

在 else 条件下,它应该是torch.from_numpy(idx_unsort)而不是torch.from_numpy(idx_sort)idx_sort是一个 torch.LongTensor。 见行号 41.

所有3条评论

有一个小错误。 行号 50 应该是:

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_unsort)

代替,

idx_unsort = torch.from_numpy(idx_unsort).cuda() if self.use_cuda else torch.from_numpy(idx_sort)

在 else 条件下,它应该是torch.from_numpy(idx_unsort)而不是torch.from_numpy(idx_sort)idx_sort是一个 torch.LongTensor。 见行号 41.

确实,谢谢瓦西。 解决了 9357c2b6c6eb38cd5bdfd69ce6ab88a39973a399(来自最近提交 260bfd45c915529dd5ab75a55d3aa3b94432dee0 的错误)。

这是现在工作。 谢谢你。

此页面是否有帮助?
0 / 5 - 0 等级