import numpy as np
import torch.nn as nn
from sklearn.metrics.pairwise import cosine_similarity
softmax = nn.Softmax()
#设置查询向量和待查询向量
q = np.array([[1,2,3]])#使用cosine_similarity函数必须为二维向量
v = np.array([[1,2,3],[4,5,6]])
#计算q和v中每个向量之间的attention得分,此处使用余弦相似度计算,可以采取其他多种计算方式
sim = cosine_similarity(q,v)
#对计算得到的attention得分进行softmax归一化
softmax_sim = softmax(torch.tensor(sim[0]))
#依据attention对v中的每一个向量进行加权求和
attention = 0
for i in range(v.shape[0]):
attention += v[i] * np.array(softmax_sim[i])
#加权求和后取平均
attention = attention / v.shape[0]
python简单实现注意力机制
最新推荐文章于 2025-08-24 03:48:50 发布
博客涉及深度学习和自然语言处理领域。深度学习是数据挖掘重要手段,自然语言处理可进行词法、句法等分析。二者在信息技术中应用广泛,能助力文本处理、语义理解等工作。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
TensorFlow-v2.9
TensorFlow
TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型
1513





