tf.batch_to_space_nd()

tf.batch_to_space_nd()
参数:

tf.batch_to_space_nd(
    input,
    block_shape,
    crops,
    name=None
)

使用案例:

import tensorflow as tf


inputs = [[[[0], [1], [3]]], [[[0], [9], [11]]],
          [[[0], [2], [4]]], [[[0], [10], [12]]],
          [[[0], [5], [7]]], [[[0], [13], [15]]],
          [[[0], [6], [8]]], [[[0], [14], [16]]]]

block_shape = [2, 2]
crops = [[0, 0], [0, 0]]
sess = tf.Session()
print(sess.run(tf.batch_to_space_nd(inputs, block_shape, crops)))

这个函数根据官方文档理解起来有点难,我花了几个小时才搞明白,它是根据block_size和crops两个参数决定最后转换的矩阵,拿上面例子来说:
官方给的公式为

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
tf.space_to_batch_nd是TensorFlow中的函数,用于将输入的tensor转换为由空间维度(如图像的高度和宽度)和批处理维度组成的新的tensor。 在深度学习中,通常会对图像进行批处理处理,即同时处理多个图像。然而,有些情况下,我们可能想要对大尺寸的图像进行处理,但是由于内存限制或硬件限制,不能一次性处理整个图像。这时,就可以使用tf.space_to_batch_nd函数将大尺寸的图像分割成小块,并进行批处理处理。 tf.space_to_batch_nd函数接受一个4维的输入张量,可以是图像数据或其他具有空间维度的数据。函数通过两个参数来控制输入张量的转换行为: 1. block_shape:一个1-D整数张量,表示将输入张量的每个空间维度划分成多少个块。该参数的长度必须与输入张量的维度相同,且每个值必须大于0。 2. paddings:一个2-D整数张量,表示对输入张量中空间维度块的填充大小。该参数的形状必须与block_shape的长度相同,每个值表示在对应维度上的填充大小。 在转换时,函数会根据block_shape的值将输入张量的空间维度进行切分,然后在每个切分块的周围进行填充。最后,将切分后的块整理成批处理的形式,即将空间维度放在批处理的维度之后。 tf.space_to_batch_nd函数的返回值是一个新的tensor,其形状与输入张量的形状有关。通过这个函数,我们可以方便地对大尺寸的图像进行批处理处理,以提高模型的训练速度和效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值