TensorFlow-similarity 学习笔记3
2021SC@SDUSC
Model definition
SimilarityModel()模型扩展了tensorflow.keras.model.Model,具有额外的功能和功能,允许索引和搜索类似示例。
如下方模型定义所示,相似性模型使用 MetricEmbedding() 层输出 64 维浮点数嵌入。此层是具有 L2 normalization的Dense layer。由于loss,模型可以学会最大限度地缩短类似示例之间的距离,并最大限度地扩大不同示例之间的距离。因此,嵌入空间中示例之间的距离是有意义的:距离越小,示例越相似。
能够使用距离作为两个示例的类似程度的有意义的原则,是启用fast ANN(近邻)搜索的原因。使用线性时间下的 ANN 搜索而不是标准二次 NN 搜索是允许深度相似性搜索扩展到数百万个项目的原因。此笔记本中使用的内置内存索引很容易缩放到一百万个索引示示例。如果你有足够的内存:)
def get_model():
inputs = layers.Input(shape=(28, 28, 1))
x = layers.experimental.preprocessing.Rescaling(1/255)(inputs