我有一长串事件(400 个独特事件,序列约 10M 长)。我想训练一个 RNN 来预测下一个事件。
我采取的预处理步骤是:(1)使用熊猫转向OneHotEncoding:
vector = pd.get_dummies(sr)
这部分大约需要 15 秒。
(2)使用10的滑动窗口,我创建样本和标签如下;我从 (1) 迭代向量,我将 Xt 作为标签,Xt:t-10 作为数据。
代码:
X = np.zeros((len(samples), window_size, voc_len), dtype=np.bool)
y = np.zeros((len(samples), voc_len), dtype=np.bool)
if IN_COLAB:
loading_bar = tqdm.tqdm_notebook(enumerate(samples),desc='Build dataset',total=len(samples))
else:
loading_bar = tqdm.tqdm(enumerate(samples),desc='Build dataset',total=len(samples))
for numpy_index, pandas_idx in loading_bar:
x_idx = (pandas_idx, pandas_idx + window_size)
y_idx = pandas_idx + window_size
Xt = vector.iloc[x_idx[0]:x_idx[1]]
yt = vector.iloc[y_idx]
X[numpy_index] = Xt
y[numpy_index] = yt
display(yt)
问题是秒部分非常慢(25 分钟)。有一个更好的方法吗?某种内置功能?
谢谢