你好,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 模块的加速
- 如果有同学有这个问题的相关线索,希望能够解答一下,感谢。