def deltaDeEmbedSum(delta, width):
nSeg = delta.shape[0]
nObs = delta.shape[1]
nDim = delta.shape[2]
lags = width-1
origDim = nDim // width
pad = np.zeros((nSeg,lags,nDim), dtype=delta.dtype)
delta = delta[:,::-1,:]
delta = np.concatenate((pad,delta,pad), axis=1)
flags = delta.flags
assert flags.c_contiguous
sz = delta.itemsize
deEmb = npst.as_strided(delta,
shape=(width, nSeg, nObs+lags, origDim),
strides=(origDim*(width+1)*sz,
delta.shape[1]*delta.shape[2]*sz,
width*origDim*sz, sz))[:,:,::-1,:]
return deEmb.sum(axis=0)#[:,::-1,:]
评论列表
文章目录