在TensorFlow-2.x版本中,数据都变成了动态,虽然学习,编写代码都方便了很多,但是网络的前向推理速度会慢了很多。那么如何将eager模式下的动态图转化为静态图呢?使用@tf.funtion即可解决这个问题。@tf.funtion的使用方法也是极为简单,只需要书写在函数声明的上方,具体事例如下式所示,代码中的tf为导入简称,即import tensorflow as tf ,请注意甄别。
@tf.function
def get_pred(image):
out = model(image, False)
return out
@tf.funtion将动态图转化为静态图后,就可以对网络推理速度大幅度加速,具体事例如下,以YOLOv4-tiny为例:
from functools import wraps
from tensorflow.keras import backend as K
from tensorflow.keras.layers import Conv2D, ZeroPadding2D, UpSampling2D, Concatenate, MaxPooling2D, Lambda, Layer,