关于 OpenVINO 并不支持全部 tf1.13 操作的转换 的解答

比赛 sophie ⋅ 于 1个月前 ⋅ 最后回复由 q501584622 1个月前 ⋅ 307 阅读

确实并不是所有层都支持,tf的层的支持情况在官网中有描述: https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_Supported_Frameworks_Layers.html

OpenVINO在迭代过程中会逐步的完善op的支持,这是一个持续的过程。
可以在Github上给OpenVINO团队提issue,地址是:
https://github.com/openvinotoolkit/openvino/issues
会有工程师来解答问题,一些对op的支持需求,如果提的小伙伴多了,可能就会列入下个版本的迭代计划中。

如果遇到不支持的层,可以实现成custom layer,官网有教程,这个有一定的挑战性,希望大家尝试一下。
https://docs.openvinotoolkit.org/latest/_docs_HOWTO_Custom_Layers_Guide.html

微信公众号: 极市平台(ID: extrememart )
每天推送最新CV干货

成为第一个点赞的人吧 :bowtie:
回复数量: 1
  • 你好,tf1.13(openvino是python接口)的问题是我提出来的,当时因为手机端填写反馈的输入框太小了,所以没有写详细,现在想补充一下,希望以后有同学遇到了这个问题可以一起交流一下

    问题一:openvino推理的时候(应该是runtime error)报错"Eltwise node with unsupported combination of input and output types"

    • 加入以下代码(自定义的mish激活函数)会报错这个错误(但是openvino编译没问题)

      def activation_fn(inputs, name, alpha=0.1):
      if name is activation.MISH:        
          MISH_THRESH = 20.0        # thresh
          tmp = inputs
      
          inputs = tf.where(
                                      tf.math.logical_and(tf.less(inputs, MISH_THRESH), tf.greater(inputs, -MISH_THRESH)),
                                      tf.log(1 + tf.exp(inputs)), 
                                      tf.zeros_like(inputs)
                                  )
          inputs = tf.where(tf.less(inputs, -MISH_THRESH), 
                                                  tf.exp(inputs), 
                                                  inputs)
          # Mish = x*tanh(ln(1+e^x))
          inputs = tmp * tf.tanh(inputs)
          return inputs
    • 而当我把mish激活改成这样就不会报错
      # 标准 mish 激活
      inputs = inputs * tf.tanh(tf.log(1+tf.exp(inputs)))
    • 前者代码就只是比后者多了一个 tf.where 和几个 tf 的逻辑操作,所以我推断是openvino可能在运行中对这几个操作中的某一个或某几个不支持(暂时还没确定下来),但是官网那里好像没发现说不支持这个操作

      问题二:貌似不能对 tf.contrib.slim 模块进行加速(没影响准确率)

    • 我改动了问题一的代码使其能够顺利执行后,发现程序的执行速度并没有提高
    • 使用pb模型进行cpu推理的速度大概是0.28fps左右,使用openvino转化后的速度大概是0.37fps左右 ,然而openvino的推理是在我删除了一些操作后的推理速度(抱歉,时间限制,没有严格控制变量),所以基本上openvino并没有对我的模型进行任何加速,我的推断就只有是 openvino 不支持 tf.contrib.slim 模块的加速
    • 如果有同学有这个问题的相关线索,希望能够解答一下,感谢。
    1个月前 1
您需要登陆以后才能留下评论!