--Les personnes qui essaient d'exécuter CNN (convolution NN) écrit dans 1 code système dans l'environnement Tensorflow 2
Je ne publierai pas le code pour diverses raisons,
tf.keras. *
Pour obtenir des données MNISTtf.nn. *
, Tf.train. *
, Tf. *
Et voici le code exécutant CNN.
Pour les principales modifications de Tensorflow 1 à 2, [ici](https://data-analysis-stats.jp/%E6%B7%B1%E5%B1%9E%E5%AD%A6%E7% J'ai vu divers articles tels que BF% 92 / tensorflow-2-0-% E4% B8% BB% E3% 81% AA% E5% A4% 89% E6% 9B% B4% E7% 82% B9 /) Cependant, ceux qui ont eu un impact direct sur l'exécution de CNN étaient:
Par défaut d'exécution impatiente
Suppression de session et d'espace réservé
Il peut y avoir d'autres options selon la façon dont CNN est implémenté, mais veuillez pardonner ce point.
Il semble y avoir les trois façons suivantes de déplacer CNN en notation de série 1 en série 2 (changez le code pour le changer).
Ce n'est pas une méthode judicieuse, mais s'il y a peu de changements, je pense qu'il est possible de réécrire régulièrement les parties pertinentes. Voici les correctifs nécessaires pour faire fonctionner CNN:
ʻImporter tensorflow comme tf` Immédiatement après, ajoutez ce qui suit pour désactiver Eager Execution.
tf.compat.v1.disable_eager_execution()
Modifiez l'API correspondant à la colonne ** '1 series' ** dans le code comme décrit dans ** '2 series' **.
# | 1 système | 2 système |
---|---|---|
1 | tf.placeholder | tf **.compat.v1.**placeholder |
2 | tf.random_uniform | tf.random.uniform |
3 | tf.add_to_collection | tf **.compat.v1.**add_to_collection |
4 | tf.get_collection('costs') | tf **.compat.v1.**get_collection |
5 | tf.train.AdamOptimizer | tf **.compat.v1.**train.AdamOptimizer |
6 | tf.Session() | tf **.compat.v1.**Session() |
Certains, comme ** # 2 **, n'ont pas simplement ajouté compat.v1
.
Pour les API autres que celles ci-dessus qui nécessitent l'ajout de compat.v1
, voir Module Tensorflow: tf.compat.v1. Se il vous plaît se référer.
Il semble y avoir un moyen de convertir le code en notation système 2 en utilisant le script de mise à jour, en se référant à Mettre à jour automatiquement le code vers TensorFlow 2. .. Je pense que c'est plus sûr que la conversion manuelle de 1, mais il y a une description que certaines pièces nécessitent une conversion manuelle, il semble donc que ce ne soit pas entièrement automatique.
Selon Migrer le code TensorFlow1 vers TensorFlow2 Instruction d'importation Tensorflow
import tensorflow as tf
À
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Il semble que le code de la notation système 1 puisse être exécuté en changeant comme ceci pour invalider le comportement du système 2. (J'ai pu confirmer l'exécution dans mon code)
Je serais très heureux si cela fonctionne de 3 manières. J'ai trouvé la méthode 3 après avoir fait 1 donc j'ai écrit ceci pour que personne ne sorte. Je veux m'habituer de plus en plus à Tensorflow.
Recommended Posts