tensorflow 中data_format"NCHW" or  "NHWC"

Tensorflow 中 NCHW 和 NHWC的区别:

其中data_format 默认 "NHWC",也可以手动设置为 "NCHW"。这个参数规定了 input Tensor 和 output Tensor 的排列方式。

data_format 设置为 "NHWC" 时,排列顺序为 [B, H, W, C];设置为 "NCHW" 时,排列顺序为 [B, C, H, W]。

以图像RGB为例,具体的效果如下:

这个怎么解释呢?

得从矩阵的表达方式说起,[B, C, H, W] B 个(C个(H(W长的向量))),层层嵌套.

以灰度计算为例, NCHW需要计算完所有的通道才可以得到灰度值,而NHWC则每三个像素,即一个通道计算完毕就可以得到一个点的灰度值.

因此可以看出NHWC形式的数据访存局部性较好.NCHW需要等待计算完所有的通道,占用较大的临时空间.

TensorFlow 为什么选择 NHWC 格式作为默认格式?因为早期开发都是基于 CPU,使用 NHWC 比 NCHW 稍快一些(不难理解,NHWC 局部性更好,cache 利用率高)。

NCHW 则是 Nvidia cuDNN 默认格式,使用 GPU 加速时用 NCHW 格式速度会更快.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值