2017-10-13 63 views
0

我有一个时间序列(表示为张量),形状为[Batch_Size, T, 40]。现在,我想从时间步0开始的序列中提取其他所有矢量,并且扩展到2,4,...,从而产生大小为[Batch_Size, T/2, 40]的东西。Tensorflow:提取每个其他元素

什么是TensorFlow中最有效/最快速的方法?请注意,T是固定的,如果有帮助的话是已知的。

在此先感谢!

回答

1

使用切片符号和指定的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]]]