tensorflow 核心ML委托不支持ResizeBilinear层,

5cnsuln7  于 6个月前  发布在  其他
关注(0)|答案(7)|浏览(50)

问题类型

Bug

你是否在TensorFlow Nightly版本中复现了这个bug?

是的

问题来源

源代码

TensorFlow版本

2.10或2.11

自定义代码

是的

OS平台和发行版

  • 无响应*

移动设备

  • 无响应*

Python版本

  • 无响应*

Bazel版本

GCC/编译器版本

CUDA/cuDNN版本

GPU型号和内存

111

当前行为?

我在iPhone 12上运行coreml delegate。tflite模型有ResizeBilinear层(align_coreners == false, half_pixel_center == true),但我发现tflite代码如下(coreml_delegate.mm):

// 对于大多数操作,只支持版本1。
if (registration->version > 1) {
    return false;
}
ResizeBilinear层不支持ANE,因为版本>1。但是如果ResizeBilinear层(align_coreners == false, half_pixel_center == false),它将被ANE引擎支持。因此,性能将得到提高。

独立代码以重现问题

my question is ,
ResizeBilinear layer ( align_coreners == false , half_pixel_center ==true) can be supported by ANE?
this format is common during training model
thank you!

相关日志输出

  • 无响应*
rsaldnfx

rsaldnfx1#

根据文档,coreml_delegate中的here是一个支持的操作。请问这是否是您正在寻找的内容?谢谢!

z9zf31ra

z9zf31ra2#

根据文档,coreml_delegate中的here表示支持ResizeBilinear操作。请问这是否是您要找的内容?谢谢!

是的,但文档很简单。

这个ResizeBilinear层在coreml中不受支持,只有在"half_pixel_centers = false"的情况下,coreml才能支持它。

wn9m85ua

wn9m85ua3#

align_corners = false , half_pixel_centers = true
这个配置参数是通用的,那么coreml如何支持它呢?

4xy9mtcn

4xy9mtcn4#

你好,@mengran1234,当前版本是https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/coreml/coreml_delegate.mm,这似乎与你的代码片段不同。你能尝试使用最新版本并告诉我们是否解决了你的问题吗?此外,我很难理解你的问题。你的代码能工作吗?它能工作,但性能不符合你的预期吗?如果是这样的话,请告诉我们如何解决。感谢你提供任何额外的信息。

6qfn3psc

6qfn3psc5#

我的代码可以正常运行。但是由于ResizeBilinear层,性能与我预期的不匹配。以下是代码:

// 对于大多数操作,只支持版本1。
if (registration->version > 1) {
    switch (registration->builtin_code) {
        case kTfLiteBuiltinDepthwiseConv2d:
            if (registration->version > 2) return false;
            break;
        // 从版本6开始支持无偏的FullyConnected。
        case kTfLiteBuiltinFullyConnected:
            if (registration->version > 6) return false;
            break;
        default:
            return false;
    }
}

如果使用ResizeBilinear(align_corners = false , half_pixel_centers = true),上述代码将运行到"default: return false;",因此CoreML不支持此层(满足条件registration->version > 1)。

balp4ylt

balp4ylt6#

好的,谢谢你提供的信息。我们会将此视为一个功能请求,@yishuangP,你能看一下吗?

h9vpoimq

h9vpoimq7#

你知道吗?
// 对于大多数操作,仅支持版本1。
如果 (registration->version > 1) {
上面的 registration->version 值从哪里来?它是如何定义的?

相关问题