web-dev-qa-db-fra.com

Le nom tf.Session est obsolète. Veuillez utiliser tf.compat.v1.Session à la place

J'ai reçu l'avertissement de dépréciation suivant dans mon code tensorflow:

Le nom tf.Session est obsolète. Veuillez utiliser tf.compat.v1.Session à la place.

  • Pourquoi j'ai reçu cet avertissement
  • Que se passera-t-il dans tensorflow 2.0. au lieu de tf.session
  • Est-il correct d'utiliser tf.compat.v1.Session
16
Hadi Rasekh

Pour que TensorFlow soit plus "Pythonic" dans la version 2.0, TF 2.0 n'a pas de conception tf.Session.

TensorFlow 1.X oblige les utilisateurs à assembler manuellement un arbre de syntaxe abstraite (le graphique) en effectuant des appels d'API tf. *. Il oblige ensuite les utilisateurs à compiler manuellement l'arbre de syntaxe abstraite en passant un ensemble de tenseurs de sortie et de tenseurs d'entrée à un appel session.run ().

TensorFlow 2.0 s'exécute avec impatience (comme Python le fait normalement) et dans 2.0, les graphiques et les sessions devraient ressembler à des détails d'implémentation.

Vous pouvez utiliser:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

Cependant, cela ne vous permet pas de profiter de nombreuses améliorations apportées à TensorFlow 2.0.

La meilleure solution est:

  • Remplacer les appels tf.Session.run: chaque appel tf.Session.run doit être remplacé par une fonction Python.
    • Les feed_dict et tf.placeholders deviennent des arguments de fonction.
    • Les récupérations deviennent la valeur de retour de la fonction.
14
Hadi Rasekh