tensorflow实现余弦cosine相似度

博主分享了对TensorFlow的失望经历,转而选择简单模块和自定义实现,通过实例展示了如何使用自己的代码计算余弦相似度。
部署运行你感兴趣的模型镜像

最近对tensorflow日渐失望,不通版本不通模块之间的不兼容问题实在操蛋,导致自己都不知道算法运行的效果差是idea不行的原因还是tensorflow未知bug的原因。

所以,现在倾向于,比较简单的模块,或者轮子,能尽量自己实现就自己实现吧。除了避免未知的bug之外,还能为自己的需求量身定制。自己还能知根知底,避免盲目崇拜。

自己正处在远离tensorflow的边缘。

直接上代码吧:

def tf_cosine_distance(self, tensor1,tensor2):
	"""
	consine相似度:用两个向量的夹角判断两个向量的相似度,夹角越小,相似度越高,得到的consine相似度数值越大
	数值范围[-1,1],数值越大越相似。
	:param tensor1:
	:param tensor2:
	:return:
	"""
    #把张量拉成矢量,这是我自己的应用需求
	tensor1 = tf.reshape(tensor1,shape=(1,-1))
	tensor2 = tf.reshape(tensor2, shape=(1, -1))
	
	# 求模长
	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

 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值