【问题标题】:Tensorflow lite Pipeline Changes because of Cast Reordering由于 Cast Reordering 而导致的 Tensorflow lite 流水线更改
【发布时间】:2019-06-19 06:23:26
【问题描述】:

此问题与在 TFLite 转换期间作为不需要的属性出现的 Cast-reordering 相关。我们有一个 pb 文件,其中 reshape 运算符发生在 Cast 操作之前。我们基本上想要一个在移动 GPU 中更快的重塑操作,首先执行,然后是在 CPU 中运行的 Cast 操作。但是由于未知的原因,执行流在中间从 GPU 跳到了 CPU,首先执行 Cast 运算符。这些 reshape 和 Cast 转换是按此顺序完成的,以便获得一些速度。将数据从移动 GPU 复制到移动 CPU,如果它是在较小的维度上完成的,而不是 4 维,被证明是决定模型运行时间的一个很好的因素。即使在 pb 级别,Cast 显示在 Reshape 运算符之后,on tf-lite 级别,职位正在发生变化。当在基准工具和 Netron 上分析图表时,引入了一个称为 Cast-reorder 的附加输入。什么是 Cast 重新排序,如何消除?

1) 在 Reshape 级别切断图形时,图形与预期一致,但没有 Cast 运算符。

【问题讨论】:

    标签: android tensorflow protocol-buffers tensorflow-lite


    【解决方案1】:

    从描述中有点不清楚发生了什么。我需要澄清一下:

    1. 您描述的问题是 Toco 中的错误吗?
    2. 或者问题是 GPU 执行中的错误?

    无论哪种情况,可视化都会有所帮助。

    还要注意:

    1. GPU 中的 RESHAPE 非常慢。对于任何类型的重塑操作,您都希望在 CPU 中进行。
    2. 我不熟悉 CAST,但它是 GPU 不支持的操作。此外,GPU 的所有输入都必须是浮点数。
    3. 较小的尺寸没有帮助。它将始终转换为 PHWC4 格式的 GPU 友好布局。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-11
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      相关资源
      最近更新 更多