반응형
[Error]
Traceback (most recent call last):
File "Handler.py", line 39, in <module>
_service.indexing(model_path)
File "Handler.py", line 22, in indexing
self.cpu_index.add(emb)
File "/home/lib/python3.6/site-packages/faiss/__init__.py", line 103, in replacement_add
n, d = x.shape
ValueError: too many values to unpack (expected 2)
이 Error log는 index.add의 input의 shape이
2차원이어야 하는데 3차원 이상이어서 발생한다!
실제로 찍어보니 -> (9, 1, 128)
차원수를 줄여서 2차원으로 만들기위해 squeeze()로 해결!
<torch의 tensor squeeze>
import torch
x = torch.rand(4, 1, 128)
x = x.squeeze() #[4, 128]
<numpy의 array squeeze>
import numpy as np
x = np.array([[[0], [1], [2]], [[0], [1], [2]]])
print(x.shape) # (2, 3, 1)
x = np.squeeze(x)
print(x.shape) # (2, 3)
반응형
'자연어처리(NLP) > IR(Information Retrieval)' 카테고리의 다른 글
[Faiss][Error] ERROR:in method 'IndexFlatCodes_add', argument 3 of type 'float const *' (0) | 2023.01.11 |
---|---|
[Faiss][Erorr] name 'GpuResourcesVector' is not defined (0) | 2022.12.12 |
[논문리뷰] Pre-training Methods Designed for IR (0) | 2022.10.26 |
[Faiss] index.search() return negative value, KeyError: -1 (0) | 2022.09.02 |
댓글