用Tensorflow计算距离矩阵
一般计算距离矩阵,都是用两层循环来做,这样效率太低。在样本维度上,距离矩阵的运算相互没有依赖关系,是可以做并行的。除了开多线程用CPU并行计算以外,还可以用GPU加速,比如拿tensorflow实现。
数据结构
现在有 NNN(可以理解为 batch_sizebatch\_sizebatch_size)个时序序列样本,每个样本的大小为 (T,C)(T,C)(T,C),是长度为 TTT 的 CCC 维向量序列。考虑到时序序列的特点,每个样本的长度可能各不相同,但是做了补零处理(PaddingPaddingPadding),使得长度短于 TTT 的序列补全到 TTT,最终构成如下图所示的 (N,T,C)(N,T,C)(N,T,C) 大小的张量(TensorTensorTensor)。

距离计算思路
所谓距离矩阵,即在某个数据集中,对时序序列样本两两之间计算距离矩阵。序列 X=[x1,x2,⋯ ]X=[x_1,x_2,\cdots]X=[x1,x2,⋯] 与序列 Y=[y1,y2,⋯ ]Y=[y_1,y_2,\cdots]Y=