在Day 13 Self-attention(七) Positional Encoding、self-attention和其他model的比较中有提到说,self-attention只有input之间的相关联性,并没有位置资讯
由於文句中的位置关系是个很重要的资讯,因此这边有提到几个公式可以将文字位置加入input中
以下是位置编码的公式
公式我现在看得还没有很懂,了解了之後会再更新
def get_angles(pos, i, d_model):
angle_rates = 1 / np.power(10000, (2 * (i//2)) / np.float32(d_model))
return pos * angle_rates
def positional_encoding(position, d_model):
angle_rads = get_angles(np.arange(position)[:, np.newaxis],
np.arange(d_model)[np.newaxis, :],
d_model)
# apply sin to even indices in the array; 2i
angle_rads[:, 0::2] = np.sin(angle_rads[:, 0::2])
# apply cos to odd indices in the array; 2i+1
angle_rads[:, 1::2] = np.cos(angle_rads[:, 1::2])
pos_encoding = angle_rads[np.newaxis, ...]
return tf.cast(pos_encoding, dtype=tf.float32)
n, d = 2048, 512
pos_encoding = positional_encoding(n, d)
print(pos_encoding.shape)
pos_encoding = pos_encoding[0]
# Juggle the dimensions for the plot
pos_encoding = tf.reshape(pos_encoding, (n, d//2, 2))
pos_encoding = tf.transpose(pos_encoding, (2, 1, 0))
pos_encoding = tf.reshape(pos_encoding, (d, n))
plt.pcolormesh(pos_encoding, cmap='RdBu')
plt.ylabel('Depth')
plt.xlabel('Position')
plt.colorbar()
plt.show()
Scrum是大家想要导入的文化与工具,在分享了很多工具、体会和方法後,感觉是个好时机要来讲如何导入s...
我有好多 if 呀 身为一个新手後端,常常会忽略到一些细节是需要挡掉的,以这一系列在做的 Task ...
一日客语:中文:报纸 客语:bo ziiˋ 最近很疑惑迭代物件和可迭代到底是什麽??於是查一下资料,...
大家好,我是转职未满一年的工程师,听到友人推荐这项IT界的盛事,今年慕名前来参加IT邦自我挑战连续发...
今天来到这次铁人赛的最後一个章节:实作一个 React.js 的网站。这个网站会结合前面几天所介绍...