tf.space_to_depth与tf.reshape比较

demo代码:

import tensorflow as tf
import numpy as np
x_pad = np.reshape(np.arange(0,4*4*8),[1,4,4,8])
x = tf.placeholder(tf.int32,[1,4,4,8])
y = tf.space_to_depth(x,block_size=2)
z = tf.reshape(x,[1,2,2,32])
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config = config) as sess:
    y_out,z_out = sess.run([y,z],{x:x_pad})
    print('x_pad:')
    print(x_pad)
    print('y_out:')
    print(y_out)
    print('z_out:')
    print(z_out)

运行结果如下:

x_pad:
[[[[  0   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  33  34  35  36  37  38  39]
   [ 40  41  42  43  44  45  46  47]
   [ 48  49  50  51  52  53  54  55]
   [ 56  57  58  59  60  61  62  63]]

  [[ 64  65  66  67  68  69  70  71]
   [ 72  73  74  75  76  77  78  79]
   [ 80  81  82  83  84  85  86  87]
   [ 88  89  90  91  92  93  94  95]]

  [[ 96  97  98  99 100 101 102 103]
   [104 105 106 107 108 109 110 111]
   [112 113 114 115 116 117 118 119]
   [120 121 122 123 124 125 126 127]]]]
y_out:
[[[[  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  32
     33  34  35  36  37  38  39  40  41  42  43  44  45  46  47]
   [ 16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  48
     49  50  51  52  53  54  55  56  57  58  59  60  61  62  63]]

  [[ 64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  96
     97  98  99 100 101 102 103 104 105 106 107 108 109 110 111]
   [ 80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95 112
    113 114 115 116 117 118 119 120 121 122 123 124 125 126 127]]]]
z_out:
[[[[  0   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  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48
     49  50  51  52  53  54  55  56  57  58  59  60  61  62  63]]

  [[ 64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80
     81  82  83  84  85  86  87  88  89  90  91  92  93  94  95]
   [ 96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112
    113 114 115 116 117 118 119 120 121 122 123 124 125 126 127]]]]

解释:从图像角度来看(假设正方形图像),tf.space_to_depth(x,block_size=2)相当于在高和宽的方向上每隔(block_size-1)像素采样(像分离卷积),这样会多出block_sizeblock_size倍个采样结果,将它们合并到通道上; tf.reshape(x,[1,2,2,32])想当于在每条像素上(就是矩阵的同一列元素)采样,这样也会多出block_sizeblock_size倍个采样结果,将它们合并到通道上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值