我有一个faiss索引,想在我的python脚本中使用一些嵌入。嵌入的选择应通过id完成。由于faiss是用C++编写的,swig被用作API。
我想我需要的函数是reconstruct:
/** Reconstruct a stored vector (or an approximation if lossy coding)
*
* this function may not be defined for some indexes
* @param key id of the vector to reconstruct
* @param recons reconstucted vector (size d)
*/
virtual void reconstruct(idx_t key, float* recons) const;
字符串
因此,我在python中调用这个方法,例如:
vector = index.reconstruct(0)
型
但这会导致以下错误:
vector = index.reconstruct(0)File“lib/python3.8/site-packages/faiss/init.py”,line 406,in replacement_reconstruct self.reconstruct_c(key,swig_ptr(x))File“lib/python3.8/site-packages/faiss/swigfaiss.py“,line 1897,in reconstruct return _swigfaiss.IndexFlat_reconstruct(self,key,recons)
TypeError:in method 'IndexFlat_reconstruct',argument 2 of type 'faiss::Index::idx_t' python-BaseException
有人知道我的方法有什么问题吗?
2条答案
按热度按时间ctrmrzij1#
这是我手动找到的唯一方法。
字符串
输出量:
型
你可以用循环得到任何向量
型
输出量:
型
3npbholx2#
你可以得到你添加到索引中的所有嵌入,
字符串
参考资料