2017-08-03 1 views
1

Lors de l'exécution des tests de tensorflow en utilisant la commande bazel test, je peux voir des tests qui échouent à cause de l'assertion erreur (légère déviation par rapport à la tolérance attendue), passent lorsqu'il est exécuté avec -c dbg comme ci-dessous:drapeaux d'optimisation dans Bazel lors de l'exécution tensorflow Tests

bazel test -c dbg //tensorflow/python:training_ops_test 

Alors, cela ne fonctionne pas:

bazel test -c opt //tensorflow/python:training_ops_test 
bazel test //tensorflow/python:training_ops_test 

Ainsi, selon Bazel, --compilation_mode [-c] peut être FastBuild, dbg ou opter; par défaut: "fastbuild".

Le mode opt or fastbuild renvoie-t-il un résultat inattendu sur quelques plates-formes?

+0

Je ne suis pas sûr de comprendre la question, demandez-vous si dbg/opt/fastbuild fonctionne sur toutes les plateformes de la même manière? A partir du mode de compilation perspective de Bazel, il suffit d'un commutateur qui change la façon dont la ligne de commande résultante va apparaître, quels drapeaux sont ajoutés et quelles sorties sont produites. Quels drapeaux sont ajoutés pour quel mode de compilation est entre les mains des auteurs du projet. Ou j'ai mal compris la question? – mhlopko

+0

Oui @mhlopko, vous avez bien compris .. Mon problème est que le test passe avec le mode débogage et non avec opt/fastbuild. Donc, j'essaie de comprendre la différence entre les deux. Si Bazel définit le comportement dans ces deux modes ou TensorFlow. Toujours sur Red Hat, l'erreur est vue à Tolderance alors que sur Ubuntu il passe. Donc, cela ne me semble pas être un problème de code TensorFlow. D'où un peu perplexe à ce sujet. – NamrataB

Répondre

2

dbg, opt et fastbuild passez différentes options au compilateur C++. Vous pouvez voir exactement quelles options en regardant les sections dbg et opt du CROSSTOOL.

Je suppose que les échecs que vous voyez sont basés uniquement sur des variances dans la génération de code en raison de différents niveaux d'optimisation dans le mode de compilation. This question est un bon aperçu de certaines des différences que vous verrez entre les versions optimisées et non optimisées. (C'est pour Windows en particulier, mais s'applique aux optimisations de compilateur sur tous les systèmes.)

+0

Woah. Trop de penser. En effet, le lien ci-dessus que vous avez partagé explique très bien les différences. @ Kristina, merci! – NamrataB