シンプルなコンテンツベースの推奨システムを構築しています。 コサイン類似度をGPUで高速化して計算するために、Pytorch
を使用しています。
_csr_matrix
_からtfidf vocabulary tensorを作成するときに、次の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)です。
古いバージョンのPyTorchでこのエラーをスローしていたのと同じコードを試しました。もっとRAMが必要だと言っていました。したがって、これはPyTorchのバグではありません。唯一の解決策は、マトリックスのサイズを何らかの方法で減らすことです。