题解|实现自注意力机制

实现自注意力机制

https://www.nowcoder.com/practice/052a6c1df2fa4668a83a6edd7af02874?tpId=377&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj

自注意力机制(Self-Attention Mechanism)是一种能够捕获序列内部元素之间关系的机制,它通过计算序列中每个元素与其他所有元素的相关性来实现信息的有效整合。其基本思想是将输入序列映射为查询(Query)、键(Key)和值(Value)三个矩阵,然后通过计算查询和键的相似度得到注意力权重,最后将这些权重与值相乘得到输出。 自注意力的计算步骤如下:

  1. 计算查询、键和值
    其中,是输入序列,是可学习的权重矩阵。
  2. 计算注意力分数
  3. 计算注意力权重
    其中,是softmax函数,表达式为
  4. 计算输出

标准代码如下

def compute_qkv(X, W_q, W_k, W_v):
    Q = np.dot(X, W_q)
    K = np.dot(X, W_k)
    V = np.dot(X, W_v)
    return Q, K, V

def self_attention(Q, K, V):
    d_k = Q.shape[1]
    scores = np.matmul(Q, K.T) / np.sqrt(d_k)
    attention_weights = np.exp(scores) / np.sum(np.exp(scores), axis=1, keepdims=True)
    attention_output = np.matmul(attention_weights, V)
    return attention_output
全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务