使用k个内存副本按k个位置滚动张量

时间:2018-11-07 23:14:34

标签: python tensorflow

我只想使用k个内存拷贝将张量按k个位置滚动。 方法:分配n + k个连续的内存,将前k个元素复制到末尾,将指针移动到k位置,获得仅具有k个内存拷贝的最终滚动Tensor,并移动一个指针。

关于此处的tf.manip.roll的实现,https://github.com/tensorflow/tensorflow/blob/3607217a7dc296baea06f190cfaa831f6b1471e6/tensorflow/core/kernels/roll_op.cc

是否有“当数据类型支持memcpy时使用memcpy分组复制内存”的版本。我在此操作中同时使用了tf.Placeholder和tf.Variable,但由于tf.Variable是可变张量,因此没有任何性能提升。

编辑:如果我进行时间线跟踪,我会发现滚动操作发生在CPU而不是GPU上,因此非常慢。

0 个答案:

没有答案