2016-09-13 1 views
0

私はこのグラフを8ビットに量子化するためにtutorialに従っています。ここで正確なグラフを共有することはできませんが、単純な畳み込みニューラルネットワークだと言えます。なぜ量子化されたグラフの推論は、元のグラフを使用するよりもはるかに時間がかかりますか?

オリジナルのネットワークと量子化されたネットワークでbenchmark toolを実行すると、量子化されたネットワークがはるかに遅いことがわかります(100ミリ秒vs. 4.5ミリ秒)。元のネットワーク内

最も遅いノード:量子化されたネットワーク内

time average [ms] [%] [cdf%] [Op] [Name] 
1.198 26.54% 26.54% MatMul fc10/fc10/MatMul 
0.337 7.47% 34.02% Conv2D conv2/Conv2D 
0.332 7.36% 41.37% Conv2D conv4/Conv2D 
0.323 7.15% 48.53% Conv2D conv3/Conv2D 
0.322 7.14% 55.66% Conv2D conv5/Conv2D 
0.310 6.86% 62.53% Conv2D conv1/Conv2D 
0.118 2.61% 65.13% Conv2D conv2_1/Conv2D 
0.105 2.32% 67.45% MaxPool pool1 

最も遅いノード:

time average [ms] [%] [cdf%] [Op] [Name] 
8.289 47.67% 47.67% QuantizedMatMul fc10/fc10/MatMul_eightbit_quantized_bias_add 
5.398 5.33% 53.00% QuantizedConv2D conv5/Conv2D_eightbit_quantized_conv 
5.248 5.18% 58.18% QuantizedConv2D conv4/Conv2D_eightbit_quantized_conv 
4.981 4.92% 63.10% QuantizedConv2D conv2/Conv2D_eightbit_quantized_conv 
4.908 4.85% 67.95% QuantizedConv2D conv3/Conv2D_eightbit_quantized_conv 
3.167 3.13% 71.07% QuantizedConv2D conv5_1/Conv2D_eightbit_quantized_conv 
3.049 3.01% 74.08% QuantizedConv2D conv4_1/Conv2D_eightbit_quantized_conv 
2.973 2.94% 77.02% QuantizedMatMul fc11/MatMul_eightbit_quantized_bias_add 

その理由は何ですか? 私は、gpuサポートなしで、ソースからコンパイルされたテンソルフローバージョンを使用しています。

+0

GPUで実行していますか?もしあなたがそうであれば、浮動グラフはGPU上に置かれてスピードアップしますが、現在のところ、QuantizedオペレーションはGPU実装を持たないため、CPU上に置かれて減速します。おそらくあなたのopの配置を見て、私たちに教えてください? – suharshs

答えて

1

https://github.com/tensorflow/tensorflow/issues/2807

コメントをここに確認してください。量子化はまだx86では最適化されていないようです。私の量子化された開始resnet v2はオリジナルよりも遅く実行されます。

関連する問題