-
Notifications
You must be signed in to change notification settings - Fork 774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ReQuEST accuracy evaluation on ImageNet: ArmCL 18.03 vs. TensorFlow 1.7 #431
Comments
We first noticed accuracy degradation (up to 0.5%) when comparing the ArmCL results with the TensorFlow accuracy figures claimed by Google researchers. However, when we measured the TensorFlow accuracy ourselves using the same methodology as for ArmCL, it became clear that degradation is probably due to differences in input preprocessing (e.g. resizing to a larger input resolution and then cropping to the model resolution; cf. with the ReQuEST artifact from Intel). |
Now, a fraction of a percent might not sound like much (e.g. 0.002% means just 1 image out of 50,000, 0.006% - 3 images, etc.) but this is smoothed out over 50,000 images. In fact, for the first 500 images, our ArmCL based implementation disagrees with TensorFlow (and the correct label) about 3 images:
It's peculiar that for |
Hi Anton, |
hi @AnthonyARM, the ArmCL based implementation is built on top of your graph API example. The TensorFlow implementation is a separate Python program (which uses exactly the same pretrained weights though). I'll provide full instructions how to reproduce this issue shortly using Collective Knowledge. |
Hi @psyhtest many thanks for reporting this. Do you know if you have the same discrepancy for both NEON and CL backend? Thanks |
Please find ArmCL instructions below. (TensorFlow instructions to follow shortly.) Please me know if anything is unclear (or ask a friendly person from @sztaylor's team:)). Installing artifact dependencies
Detecting GCC, Python, OpenCL
Installing the MobileNets artifact
Running the classification programTo classify
To classify another image (e.g.
|
@gmiodice I am afraid I don't know. Our ArmCL program currently supports only OpenCL. It should not be hard to extend it to support Neon. |
Please find TensorFlow instructions below (assuming CK has been installed as per ArmCL instructions above.) Installing artifact dependencies
Installing the artifact
NB: You may want to restrict the number of build threads to 1 or 2 on a dev board with < 4 GB RAM. For example, add Running the classification programTo classify e.g.
|
While evaluating MobileNets using ArmCL for the ReQuEST@ASPLOS'18 competition, we observed noticeable discrepancies in predictions of ArmCL 18.03 vs. TensorFlow 1.7. We used the same pretrained MobileNets-v1 weights shared by Google in 2017.
For example, the standard accuracy metrics (Top 1 / Top 5 on the ImageNet validation set of 50,000 images in percent) of 4 models (with the width multiplier of 1.0) are given in the following tables.
Top 1
Top 5
The text was updated successfully, but these errors were encountered: