首页 文章

在张量流中将张量切成两半

提问于
浏览
0

我有一个形状张量 (32, 32, 32, 1) 我希望将它切成两个张量,沿着第一个维度,包含第一和第二半,如此

half1  with shape = (16, 32, 32, 1)
half2  with shape = (16, 32, 32, 1)

我试图使用tf.slice,但我不知道如何使用开始和结束索引,文档是不明确的 .

2 回答

  • 1

    这是你如何做到的:

    import tensorflow as tf
    import numpy as np
    t = t = tf.pack(np.random.randint(1,10,[32,32,32,1]))
    half1 = tf.slice(t,[0,0,0,0],[16,32,32,1])
    half2 = tf.slice(t,[16,0,0,0],[16,32,32,1])
    

    [0,0,0,0] 表示从每个维度中的第一个元素开始,[ 16,32,32,1] 表示第一维度中的大小为16,而其他维度为32,32,1 . 它基本上意味着获得关于第一维度的前半部分以及所有其他维度的所有维度元素 .

  • 2

    结果tensorflow不需要你使用tf.slice因为你可以简单地使用numpy切片:

    first_half = input[:16]
    second_half = input[16:]
    

相关问题