Toybrick

标题: leakyRelu这个操作 [打印本页]

作者: mrzs    时间: 2019-11-28 15:50
标题: leakyRelu这个操作
yolov3和tiny-yolov3 里面的卷积的激活函数就是 leakyRelu ,基于darknet的话转模型没问题,但是 基于keras的话,就不识别 leakyRelu 这个OP了,为啥会有这样的差异呢
作者: jefferyzhang    时间: 2019-11-29 09:08
这个主要是因为tf会将很多OP给组合起来变成子图,造成本来可以识别的op被封装了一层就无法识别了。
并且硬件OP和软件OP并不是一一对应的,例如我们硬件会将 Conv2D-Relu-Maxpooling合成一个OP,效率很快。
有几种方案你可以试下:
1. keras转tf后,可以用remove traning nodes指令拆散子图结构,可以尝试下
2. 其实这里不建议用LeakyRelu,因为这个在硬件上是单独一个OP,如果你改成Relu,会被硬件三合一为一个OP,极大提高效率
3. 试着改下leakyRelu前后的op,尽量减少矩阵操作add、sub、div、mul之类的单独操作。
作者: mrzs    时间: 2019-11-29 10:16
jefferyzhang 发表于 2019-11-29 09:08
这个主要是因为tf会将很多OP给组合起来变成子图,造成本来可以识别的op被封装了一层就无法识别了。
并且硬 ...

sounds great,thanks




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3