【问题标题】:Slice tensor in Keras TensorflowKeras Tensorflow 中的切片张量
【发布时间】:2019-10-21 20:03:44
【问题描述】:

例如,我有形状为(None, 2, 100, 100, 1024) 的张量,我想将2 拆分为11,这样我就有2 个等级为4 的张量(None, 100, 100, 1024)。如何使用 Keras Tensorflow 做到这一点?

谢谢。

【问题讨论】:

    标签: tensorflow keras slice tensor


    【解决方案1】:

    使用tf.split():

    import tensorflow as tf
    
    tensor = tf.placeholder(tf.float32, (None, 2, 100, 100, 1024))
    splitted = [tf.squeeze(t, axis=1) for t in tf.split(tensor, 2, axis=1)]
    print(splitted[0].get_shape().as_list(), splitted[1].get_shape().as_list())
    # [None, 100, 100, 1024] [None, 100, 100, 1024]
    

    要连接回来:

    # manipulate here ...
    splitted = [t[:, None, ...] for t in splitted]
    res = tf.concat(splitted, axis=1)
    print(res.get_shape().as_list()) # [None, 2, 100, 100, 1024]
    

    【讨论】:

    • 谢谢你,它工作!在我操纵每个张量的值之后,我怎样才能重塑回(None, 2, 100, 100, 1024)
    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    相关资源
    最近更新 更多