tensorflow常用计算逻辑

记录tensorflow代码开发过程中常用的utils方法

1. 计算向量的cosine相似度


def cos_dis(tensor1, tensor2):
    """
    cosine相似度:是计算两个向量之间的相似度常用的方法,通过两个向量之间的夹角大小来判断相似度。夹角越小,相似度越高
    tensor1/tensor1: 维度一致的两个tensor,这里采用(n,)的标量作为介绍
    """

    # 求模长
    tensor1_norm = tf.sqrt(tf.reduce_sum(tf.square(tensor1)))
    tensor2_norm = tf.sqrt(tf.reduce_sum(tf.square(tensor2)))

    # 计算内积
    tensor1_tensor2 = tf.reduce_sum(tf.multiply(tensor1, tensor2))
    cosin = tensor1_tensor2 / (tensor1_norm * tensor2_norm)
    return cosin


def cos_dis_v2(tensor1, tensor2):
    """
    功能同上,这里先讲两个tensor进行归一化,再直接计算内积,可以省去计算模的过程
    """
    tensor1 = tf.nn.l2_normalize(tensor1)
    tensor2 = tf.nn.l2_normalize(tensor2)

    cosin = tf.reduce_sum(tf.multiply(tensor1, tensor2))
    return cosin

tensorflow常用计算逻辑
https://zermzhang.github.io/2023/03/28/tensorflow/tensorflow常用计算逻辑/
作者
知白
发布于
2023年3月28日
许可协议