Pytorch RuntimeError:[在CPUAllocator.cpp:56上强制执行失败] posix_memalign(&data,gAlignment,nbytes)==0。12 vs 0

时间:2019-05-23 10:13:06

标签: python python-3.x pytorch recommendation-engine cosine-similarity

我正在构建一个基于内容的简单推荐系统。为了以GPU加速的方式计算余弦相似度,我正在使用Pytorch

csr_matrix创建 tfidf词汇张量时,它提示以下 RuntimeErrorr

RuntimeError: [enforce fail at CPUAllocator.cpp:56] posix_memalign(&data, gAlignment, nbytes) == 0. 12 vs 0

我是以这种方式做的:

coo = tfidf_matrix.tocoo()
values = coo.data
indices = np.vstack( (coo.row, coo.col ))
i = torch.LongTensor(indices)
v = torch.FloatTensor(values)
tfidf_matrix_tensor = torch.sparse.FloatTensor(i, v, torch.Size(coo1.shape)).to_dense() 
# Prompts the error

我尝试了一个小的测试(tfidf矩阵大小= 10,296)数据集,它可以工作。 实际数据集中的tfidf矩阵大小为(27639,226957)

2 个答案:

答案 0 :(得分:0)

我尝试使用较旧版本的PyTorch引发此错误的同一段代码。它说我需要更多的RAM。因此,它不是PyTorch错误。唯一的解决方案是以某种方式减小矩阵大小。

答案 1 :(得分:0)

我在转换小型 Numpy 矩阵时遇到了同样的问题,解决方法是使用 torch.tensor 而不是 torch.Tensor。我想一旦你这样做了,你就可以转换成你想要的特定类型的张量。