Tensorflow中8位量化的错误

时间:2016-07-14 06:22:45

标签: tensorflow tensorboard

我一直在尝试使用TensorFlow中提供的新8-bit quantization feature。我可以运行博客文章中给出的示例(googlenet的量化),没有任何问题,它对我来说很好!

现在,我想将它应用于更简单的网络。因此,我使用预先训练的CIFAR-10网络(在Caffe上训练),提取其参数,在tensorflow中创建相应的图形,用这个预先训练的权重初始化权重,最后将其保存为GraphDef对象。有关完整过程,请参阅此IPython Notebook

现在我使用Pete Warden的博客中提到的tensorflow脚本应用了8位量化:

bazel-bin/tensorflow/contrib/quantization/tools/quantize_graph --input=cifar.pb  --output=qcifar.pb --mode=eightbit --bitdepth=8 --output_node_names="ArgMax"

现在我想在这个量化网络上运行分类。所以我将新的qcifar.pb加载到tensorflow会话并传递了图像(就像我将它传递给原始版本一样)。完整代码可在此 IPython Notebook.

中找到

但是正如你最后看到的那样,我收到了以下错误:

NotFoundError: Op type not registered 'QuantizeV2'

有人可以建议我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:3)

因为量化的ops和内核在contrib中,所以你需要在python脚本中显式加载它们。在the quantize_graph.py script itself中有一个例子:

from tensorflow.contrib.quantization import load_quantized_ops_so from tensorflow.contrib.quantization.kernels import load_quantized_kernels_so

我们应该更新文档来提及!