depth_to_space 可以将一个张量的数据进行调整(rearrange). 具体如何变化,如下说明:
该函数主要用于4D tensor,因此,数据的格式默认为 ‘NHWC’ , 函数将Channel轴数据变换到Hight 和 Width轴。
举例:
x = tf.constant([[[[1, 2, 3, 4, 5, 6, 7, 8], [9, 10,11, 12,13,14,15,16]],
[[17, 18, 19, 20,21,22,23,24], [25, 26, 27, 28,29,30, 31,32]]]])
x.shape # TensorShape([1, 2, 2, 8])
y = tf.nn.depth_to_space(x, block_size = 2) #y.shape 为(1, 4, 4, 2)
先将depth轴的数据,变为 : ( n, 2, 2), 其中n = depth轴的数据个数 / (block_size*block_size) = 8 / (2 * 2) = 2
x[0,0,0,:] # shape=(8,), dtype=int32, numpy=array([1, 2, 3, 4, 5, 6, 7, 8], dtype=int32
x[0,0,1,:] # shape=(8,), dtype=int32, numpy=array([9, 10,11, 12,13,14,15,16], dtype=int32
x[0,1,0,:] # shape=(8,), dtype=int32, numpy=array([17, 18, 19, 20,21,22,23,24], dtype=int32
x[0,1,1,:] # shape=(8,), dtype