我能够按照说明成功训练模型。借助那里提供的代码,我还可以在 iOS 应用程序中使用模型。但我无法弄清楚如何根据该模型返回的距离获得最相似的实际图像。此外,当我在 iPhone 上运行它时,它会返回我无法解释的偏移量和元素。请看截图。
我在 iOS 应用程序中的目标是输入一个图像,将该输入图像传递给模型,然后显示实际输出的 5 或 10 个最相似的图像,而不仅仅是距离。
确保您有一个id
列或已使用以下方法将该id
列添加到您的 SFrame:
reference_data = reference_data.add_row_number()
这是一个代码片段,用于创建image_similarity
模型并为示例图像获取十个最相似的图像。我使用 50 作为一个k
值来演示如何n
从相似度图中的较大组中提取最相似的值。
similarity_graph = model.similarity_graph(k=50)
similar_images = similarity_graph.edges
# pick a sample image from reference_data
sample_index = 3
sample_similar_images = similar_images[similar_images["__src_id"]==sample_index].sort("rank")
# get 10 most similar images
most_similar_ids = sample_similar_images["__dst_id"][0:10]
most_similar_images = reference_data.filter_by(most_similar_ids, "id")
有关从 CoreML 模型解释距离 MultiArray 的详细信息,请参阅Turi Create 文档中的示例代码。元素值对应于距离。