【发布时间】:2021-08-26 13:49:07
【问题描述】:
假设我有一个形状为(n_words, model_dim) 的矩阵W,其中n_words 是句子中的单词数,model_dim 是表示单词向量的空间维度。计算这些向量的移动平均值的最快方法是什么?
例如,窗口大小为 2(窗口长度 = 5),我可以有这样的东西(这会引发错误 TypeError: JAX 'Tracer' objects do not support item assignment):
from jax import random
import jax.numpy as jnp
# Fake word vectors (17 words vectors of dimension 32)
W = random.normal(random.PRNGKey(0), shape=(17, 32))
ws = 2 # window size
N = W.shape[0] # number of words
new_W = jnp.zeros(W.shape)
for i in range(N):
window = W[max(0, i-ws):min(N, i+ws+1)]
n = window.shape[0]
for j in range(n):
new_W[i] += W[j] / n
我想jnp.convolve 有一个更快的解决方案,但我不熟悉它。
【问题讨论】: