NVIDIA / framework-reproducibility

Providing reproducibility in deep learning frameworks
Apache License 2.0
423 stars 40 forks source link

Changing class name/structure changes program functionality (using TensorFlow) #40

Closed edwardyehuang closed 1 year ago

edwardyehuang commented 2 years ago

For example:

In my project (https://github.com/edwardyehuang/CAR/blob/master/carnet.py), line 163 (instantiate SegManaged).

If I create a wrapper class that inherited SegManaged and place it on line 163, e.g.

class gbb(SegManaged):

    pass

The performance (e.g. loss) will be different with the original one. However, I found it is depending on the first letter of the "wrapper class", if it starts with a-g (e.g. cbb, cbx, cxxx), the performance will be different, but the performance will be the same if it starts with h-z. Note that, upper/lowercase has no effect

duncanriach commented 2 years ago

Hi Edward, I've done a quick triage on this issue:

One question: I assuming this issue shows up regardless of the accelerator-type you're running on (i.e. both CPU and GPU). Is that correct?

edwardyehuang commented 2 years ago

Will provide a minimal code (in colab) in next week