我有一个形状为[Batch_Size, T, 40]
的时间序列(表示为张量)。现在,我想提取序列中从时间步 0 开始的所有其他向量,并扩展到 2, 4, ...,从而产生大小 [Batch_Size, T/2, 40]
。
在 TensorFlow 中执行此操作最有效/最快的方法是什么?请注意,T
是固定的并且已知是否有帮助。
提前致谢!
最佳答案
使用切片表示法并在需要提取/采样的第二个轴上指定步长 2:
t[:,::2]
<小时/>
示例:
import tensorflow as tf
t = tf.reshape(tf.range(24), (2,6,2))
sess = tf.Session()
print('original: \n', sess.run(t), '\n')
print('every other: \n', sess.run(t[:,::2]))
original:
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]]
[[12 13]
[14 15]
[16 17]
[18 19]
[20 21]
[22 23]]]
every other:
[[[ 0 1]
[ 4 5]
[ 8 9]]
[[12 13]
[16 17]
[20 21]]]
关于python - Tensorflow:提取所有其他元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46721407/