【发布时间】:2021-07-19 12:48:30
【问题描述】:
这是基本代码,
def euclidean_distance(vects):
x, y = vects
sum_square = K.sum(K.square(x - y), axis=1, keepdims=True)
return K.sqrt(K.maximum(sum_square, K.epsilon()))
def eucl_dist_output_shape(shapes):
shape1, shape2 = shapes
return (shape1[0], 1)
# measure the similarity of the two vector outputs
output = Lambda(euclidean_distance, name="output_layer", output_shape=eucl_dist_output_shape)([output_a, output_b])
# specify the inputs and output of the model
model = Model([input_a, input_b], output)
我想使用余弦相似度(0 到 1 的尺度)而不是欧几里得距离来衡量两个向量之间的相似度,我尝试使用 scikit-learn 中的 cosine_similarity 但它不起作用。
那么,我们需要使用keras.backend 来构建它吗?谁能告诉我该怎么做?
【问题讨论】:
标签: python tensorflow machine-learning keras deep-learning