Pri*_*ham 5

虽然torch.nn.function.pixel_shuffle 的作用完全一样tf.nn.depth_to_space,但 PyTorch 没有任何函数来执行类似于 的逆操作tf.nn.space_to_depth

space_to_depth话虽这么说,使用torch.nn.function.unfold很容易实现。

def space_to_depth(x, block_size):
    n, c, h, w = x.size()
    unfolded_x = torch.nn.functional.unfold(x, block_size, stride=block_size)
    return unfolded_x.view(n, c * block_size ** 2, h // block_size, w // block_size)
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考:pytorch 现在提供 [pixel-unshuffle](https://pytorch.org/docs/stable/nn.function.html#pixel-unshuffle),它类似于“tf.space_to_depth” (4认同)
  • @Jon 这两个功能似乎并不等同。将随机向量放入两个函数中(确保使用 TF 的“NCHW”数据格式),输出并不相同。 (2认同)