优化使用CPU的张量流

时间:2017-11-17 13:06:49

标签: optimization tensorflow cpu convolution

我有一个需要针对CPU优化的模型。

目前,该模型采用1024 x 1024字节的数据。

images = img[y:y+1024,x:x+1024,:]

根据此文档,他们希望将默认的张量流数据格式从NHCW更改为NCHW格式。

如何从NHWC转换为NCHW格式?

https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture

1 个答案:

答案 0 :(得分:1)

  

根据本文档,他们希望将默认的tensorflow数据格式从NHCW更改为NCHW格式。

实际上,我从未见过任何支持NHCW格式的Tensorflow功能。例如,tf.nn.conv2dtf.nn.conv2d_transpose支持NHWC(当前默认值)和NCHW格式。 tf.nn.max_pool支持NHWCNCHWNCHW_VECT_C(最后一个是cudnn6量化卷积的最高性能张量格式,类似于NCHW)。

  

如何从NHCW转换为NCHW格式?

但这种转变是可能的,例如通过tf.transpose也适用于高维张量:

# NHCW
original = tf.placeholder(dtype=tf.float32, shape=[None, 1024, 3, 1024])
# NCHW: swap 1 and 2 axis
transformed = tf.transpose(original, perm=[0, 2, 1, 3])

您也可以通过np.swapaxes(array, 1, 2) numpy执行此操作。