gpt4 book ai didi

python - 如何在 DynamoDB 上存储 numpy.ndarray?

转载 作者:行者123 更新时间:2023-11-28 18:03:51 25 4
gpt4 key购买 nike

我有这个由 @ageitgey's 生成的 numpy.ndarray facial_recognition Python library当我调用 face_encodings 函数时。我需要将这些数据保存到亚马逊的 DynamoDB;但我不确定如何。

我在运行 face_encodings 函数时得到的 numpy.ndarray 是来自给定图像的人脸表示。我可以使用此数据与另一幅图像进行比较,并检查人物(表示为编码)是否出现在该图像中。

我认为我可以将 numpy.ndarray 保存为二进制文件(使用 numpy.ndarray.tobytes ,但我不确定如何转换该二进制文件(当我从 DynamoDB 检索数据时)回到 numpy.ndarray

我要比较的代码应该是这样的:

unknown_encoding = face_recognition.face_encodings(unknown_picture)[0]
# database_encoding_array should come from DynamoDB
results = face_recognition.compare_faces(database_encoding_array, unknown_encoding, tolerance=0.595)
# results is an array of booleans

总而言之,我不知道将 numpy.ndarray 保存到 DynamoDB 的最佳方法是什么,以及以后如何查询它。

最佳答案

您可以尝试使用 ndarray.tostringresults 转换为字节字符串。这对于 Dynamo 来说应该很简单。

arr = np.array([1, 2])

encoded = arr.tostring()
encoded
# b'\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00'

然后您可以使用 np.frombuffer 恢复数组。

np.array_equal(arr, np.frombuffer(encoded, dtype=int))
# True

关于python - 如何在 DynamoDB 上存储 numpy.ndarray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com