输入数据:
接收两个张量:
X_Q:形状为 TQ×dmodel 的 Query 序列,TQ 表示查询序列的长度,dmodel 表示特征维度。X_K:形状为 TK×dmodel 的 Key/Value 序列,TK 表示键值序列的长度。给定 Query 序列
XQ∈RTQ×dmodel和 Key/Value 序列
XK∈RTK×dmodel请你实现交叉注意力(Cross Attention)的完整计算流程。
X_Q:形状为 TQ×dmodel 的 Query 序列X_K:形状为 TK×dmodel 的 Key/Value 序列W_Q, W_K, W_V:形状为 dmodel×dmodel 的线性投影矩阵b_Q, b_K, b_V:长度为 dmodel 的偏置向量W_O:形状为 dmodel×dmodel 的输出层权重b_O:长度为 dmodel 的输出偏置O:形状为 TQ×dmodel 的最终交叉注意力输出矩阵输入:
X_Q =
[[1, 0, 1, 0],
[0, 1, 0, 1]]
X_K =
[[1, 1, 0, 0],
[0, 1, 1, 0]]
W_Q =
[[1, 0, 1, 0],
[0, 1, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]]
b_Q = [0, 0, 0, 0]
W_K =
[[1, 1, 0, 0],
[0, 1, 1, 0],
[1, 0, 0, 1],
[0, 0, 1, 1]]
b_K = [0, 0, 0, 0]
W_V =
[[1, 0, 0, 1],
[1, 1, 0, 0],
[0, 1, 1, 0],
[0, 0, 1, 1]]
b_V = [0, 0, 0, 0]
W_O =
[[1, 0, 1, 0],
[0, 1, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]]
b_O = [0, 0, 0, 0]
输出:
O =
[[2.00, 2.00, 1.76, 2.24],
[2.00, 2.00, 2.24, 1.76]]
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.