2017-11-17 11 views
1

CPUに最適化する必要があるモデルがあります。CPUへのテンソルフローの最適化

現在、このモデルでは1024 x 1024バイトのデータが使用されています。このドキュメントを1として

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

、彼らはNHCWNCHWの形式から、デフォルトのtensorflowのデータ形式を変更したいです。

NHWCからNCHW形式に変換するにはどうすればよいですか?このドキュメントを1として

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

答えて

1

、彼らはNCHW形式にNHCWからデフォルトtensorflowのデータ形式を変更したいです。

実際、NHCW形式をサポートするTensorflow関数は見たことがありません。たとえば、tf.nn.conv2dtf.nn.conv2d_transposeは、NHWC(現在のデフォルト)とNCHWの形式をサポートしています。 tf.nn.max_poolNHWC,NCHWおよびNCHW_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の中でこれを行うことができます。

+0

ありがとう、私は文書のリンクを提供しました。 – user1050619

+0

OK。 NHWCは、「TensorFlowのデフォルトのNHWCフォーマットが最も効率的ではない...」と言われています。これは真実です。とにかく、提案されたソリューションは動作するはずです – Maxim

関連する問題