【问题标题】:Error with 8-bit Quantization in TensorflowTensorflow 中的 8 位量化错误
【发布时间】:2016-11-16 22:31:15
【问题描述】:

我一直在试验 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'

谁能建议我在这里缺少什么?

【问题讨论】:

    标签: tensorflow tensorboard


    【解决方案1】:

    因为量化的操作和内核在 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

    这是我们应该更新文档来提及的事情!

    【讨论】:

    • 谢谢。但我得到了一个 importError。我正在通过 pip 安装使用 tensorflow 0.9。在安装过程中还有什么事情要做来导入这些模块吗?
    • 虽然我不能像你一样导入,但我做了一个小工作,正如我在这里解释的那样:stackoverflow.com/a/38495999/1134940。现在一切正常。谢谢你。我真的很想看到有关文档的更多详细信息,也想尝试其他量化方法。
    • 我应该包含哪些文件才能使用 iOS 的 C 接口使其工作?
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2018-01-13
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    相关资源
    最近更新 更多