我試圖插入一個128d向量,我在包含多個面向MongoDB集合(向量)的圖像中生成了一張臉。我使用着名的dlib庫來生成128d向量。當我嘗試將這個向量插入到mongodb集合中時,我得到了「無法編碼對象錯誤」。錯誤如下。如何在Python中使用pymongo插入128d向量到MongoDB數據庫
File "/usr/local/lib/python2.7/dist-packages/pymongo/pool.py", line 610, in _raise_connection_failure
raise error
bson.errors.InvalidDocument: Cannot encode object: dlib.vector([-0.078586, 0.0277601, 0.02961, 0.0263595, -0.0423636, -0.0593996, -0.0353243, -0.157486, 0.169706, -0.0115421, 0.215085, 0.0998522, -0.230498, -0.0380571, -0.0662888, 0.0504411, -0.0678306, -0.0943572, -0.123836, -0.0879753, -0.0753862, 0.000870723, 0.0786572, 0.0651935, -0.0732055, -0.294396, -0.108001, -0.122248, 0.0798309, -0.0558914, -0.00326786, -0.00399151, -0.2, -0.0997921, 0.0628334, -0.0214193, -0.0168998, -0.00545083, 0.260324, -0.0224971, -0.137103, 0.0410911, 0.0381873, 0.228159, 0.101016, 0.0886697, 0.0711474, -0.12792, 0.0942142, -0.139165, 0.0716797, 0.147697, 0.0957785, -0.00807651, 0.0464634, -0.18575, 0.00923027, 0.0976636, -0.24552, 0.145688, 0.0765331, -0.0418556, -0.0641425, 0.00440269, 0.181549, 0.134916, -0.0709987, -0.182558, 0.168222, -0.238072, 0.041242, 0.10536, -0.0684752, -0.199106, -0.233173, 0.00511742, 0.417584, 0.176161, -0.11886, 0.0600367, -0.16006, -0.0130243, 0.0705707, -0.0569518, -0.136003, 0.0180192, -0.0785295, -0.00361975, 0.212427, 0.0941055, -0.064303, 0.178207, 0.00868456, 0.0107785, 0.0646739, 0.0319019, -0.11788, -0.046726, -0.129802, 0.00561518, -0.0292626, -0.0468726, 0.132234, 0.00913511, -0.159603, 0.0933984, -0.0159525, -0.0224207, 0.00211018, 0.119351, -0.154814, -0.0764414, 0.170755, -0.303818, 0.304808, 0.111342, 0.066825, 0.12282, 0.0600208, 0.0596608, -0.0402757, -0.017425, -0.0706421, -0.102285, 0.0109511, -0.0790169, 0.18963, 0.0300883])
我曾嘗試將此128d向量轉換爲列表,np數組但沒有幫助。
有沒有辦法插入128d向量,因爲它是在MongoDB中使用pymongo,因爲我想比較128d向量的相似度以後。
我試圖向mongodb插入向量的代碼部分如下。
face_descriptor = facerec.compute_face_descriptor(img, shape)
print(face_descriptor)
result = db.vectors.insert_one({"image": face_descriptor, "paths" : f})
你的幫助真的很感謝。謝謝。
我首先轉化所述載體引入numpy的數組,然後到一個python列表。它解決了這個問題。是的,我稍後再詢問它們,以檢查它們的相似性,並且完全符合我的要求。感謝您的建議/鏈接。 –