当前位置: 首页 > 知识库问答 >
问题:

如何在gpu上运行伪量化图形?

阎功
2023-03-14

我从这里下载了一个量化的mobilenet,这个图包含训练期间的假量化节点,以模拟测试时的输出。我想收集这个网络最后一个逐点卷积层的输出。

量化冻结模型包含额外的fc、softmax等层,对我的应用程序没有用。

我有以下代码用于加载图形。

def load_graph(frozen_graph_filename):
    # We load the protobuf file from the disk and parse it to retrieve the
    # unserialized graph_def
    with tf.gfile.GFile(frozen_graph_filename, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

with tf.Graph().as_default() as graph:
    # The name var will prefix every op/nodes in your graph
    # Since we load everything in a new graph, this is not needed
    tf.import_graph_def(graph_def, name="prefix")
return graph

graph1 = load_graph("./quantized_fake.pb")

input = graph1.get_tensor_by_name('prefix/input:0')
output = graph1.get_tensor_by_name('prefix/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D_Fold:0')

然后使用ses运行。run(),但是我观察到卷积层的输出没有像在移动设备上运行时那样被量化(8位)。

在pc上运行代码时,如何生成与移动设备上相同的输出。

tflite文件可以在pc上用于推理吗?

共有1个答案

申屠黎昕
2023-03-14

TensorFlow伪量化图实际上并没有量化,它插入了模拟量化的伪量化操作。这些仅由TensorFlow Lite转换为完全量化的操作。这就是为什么运行TensorFlow伪量化图只会导致浮点值而不是量化值。

TensorFlow Lite quantization目前仅在CPU上运行,可以在PC的CPU上运行。下面是一个如何调用TFLite解释器在PC上运行的示例。

 类似资料:
  • 我想在Windows10中的gpu上运行我的代码,就像GoogleColab一样,我们可以改变运行时选项,这很容易转换到gpu。是否有可能在windows中对jupyter笔记本进行同样的操作。

  • 然后再次运行,但它也转到GPU0。 我看了相关的问题,如何选择指定的GPU来运行CUDA程序?但是命令不在CUDA 8.0 bin目录中。除了之外,我还看到其他文章引用了环境变量但这些都没有设置,我也没有找到关于如何使用它的信息。 虽然与我的问题没有直接关系,但使用我能够使应用程序在GPU1上运行,但使用不能在GPU0和1上运行。 我正在一个使用bash shell运行的系统上测试这一点,该系统在

  • 我已经成功地在Linux Ubuntu 16.04上安装了tensorflow(GPU),并做了一些小的修改,以便使它与新的Ubuntu LTS版本一起工作。

  • 问题内容: 我正在运行Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型大约需要50个小时,是否可以在gpu上运行Keras? 我正在使用Tensorflow后端,并在未安装anaconda的Jupyter笔记本上运行它。 问题答案: 是的,您可以在GPU上运行keras模型。几件事您将必须首先检查。 您的系统具有GPU(Nvidia。因为AMD尚未运行) 您已经安装了Tenso

  • 我安装了Tensorflow GPU,我可以在Ubuntu18.04的终端上看到它。 结果是: 但当我在PyCharm中运行它时

  • 我正在运行一个Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型,大约需要50小时,有没有办法在gpu上运行Keras? 我正在使用Tensorflow后端并在我的Jupyter笔记本上运行它,而没有安装anaconda。