sek788432 / Waymo-2D-Object-Detection

Using Tensorflow Object Detection API to detect Waymo open dataset
76 stars 6 forks source link

Performance issue in input/models/research/seq_flow_lite/models/sgnn/sgnn.py #2

Open DLPerf opened 1 year ago

DLPerf commented 1 year ago

Hello! Our static bug checker has found a performance issue in input/models/research/seq_flow_lite/models/sgnn/sgnn.py: fused_project is repeatedly called in a for loop, but there is a tf.function decorated function func defined and called in fused_project.

In that case, when fused_project is called in a loop, the function func will create a new graph every time, and that can trigger tf.function retracing warning.

Here is the tensorflow document to support it.

Briefly, for better efficiency, it's better to use:

@tf.function
def inner():
    pass

def outer():
    inner()  

than:

def outer():
    @tf.function
    def inner():
        pass
    inner()

Looking forward to your reply. Btw, I am glad to create a PR to fix it if you are too busy.

sek788432 commented 1 year ago

Thanks for the suggestion. Go ahead for pull request

DLPerf commented 1 year ago

Sorry for the delay. But some variables are depending on the outer function. Code may be more complex if changes are made. Is it necessary to make the change or do you have any other ideas?