Étapes de base de la formation basée sur le modèle tensorflow: construction d'un graphe + graphe d'exécution

1 Les étapes de base de la formation du modèle

1.1 Diagramme de structure

Le processus de construction d'un diagramme est généralement le suivant:

  • Étape 1: Lire les données: tf.data
  • Étape 2: Créez des espaces réservés pour les balises d'entrée et d'étiquette: tf.placeholder ()
  • Étape 3: créer des variables de paramètres, etc.: tf.get_variable ()
  • Étape 4: inférence
  • Étape 5: Construire la fonction de perte
  • Étape 6: créer l'optimiseur d'optimiseur
eg:
opt = tf.train.GradientDescentOptimizer(learning_rate=0.001)
optimizer = opt.minimize(loss)

1.2 Modèle de formation

  • Étape 1: initialiser les variables
  • Étape 2: Exécutez l'optimiseur et utilisez feed_dict pour transmettre la valeur d'entrée et l'étiquette dans le modèle
  • Étape 3: Utilisez FileWriter pour écrire des fichiers journaux
writer = tf.summary.FileWriter('./graphs/result', sess.graph)
  • Étape 4: Utilisez TensorBoard pour voir les résultats
tensorboard --logdir='./graphs'

2 Tensorflow lit les données et la fonction d'optimisation

2.1 tf.data

L'avantage de Placeholder est qu'il place le traitement des données en dehors de tensorflow, ce qui est pratique pour utiliser python, mais l'inconvénient est qu'il utilise un seul thread pour traiter les données, ce qui réduit généralement le processus d'exécution de l'ensemble du programme.
Voici quelques fonctions de lecture de données, qui peuvent être lues selon le format du fichier réel:

  • tf.data.Dataset.from_tensor_slices ((fonctionnalités, étiquettes))
  • tf.data.TextLineDataset (noms de fichiers)
  • tf.data.FixedLengthRecordDataset (noms de fichiers)
  • tf.data.TFRecordDataset (noms de fichiers)

Est-ce que tf.data est vraiment plus efficace?
En effet, il faut du temps pour utiliser l'espace réservé: 9.05s, et tf.data dans les mêmes conditions, le temps de traitement est de: 6.12s.

2.2 Optimiseur

Comment tensorflow sait-il quelles variables doivent être mises à jour?
La session mettra à jour toutes les variables entraînables dont la perte dépend pendant le processus d'entraînement.
Insérez la description de l'image ici
Tous les paramètres variables peuvent être entraînés par défaut, sauf si nous spécifions qu'ils n'ont pas besoin d'être mis à jour pendant le processus de formation:

tf.Variable(initial_value=None, trainable=True, ...)

Jetons un coup d'œil à quelques optimiseurs de tensorflow:

  • tf.train.GradientDecscentOptimizer
  • tf.train.AdagradOptimizer
  • tf.train.MomentumOptimizer
  • tf.train.AdamOptimizer
  • tf.train.FtrlOptimizer
  • tf.train.RMSPropOptimizer

Je suppose que tu aimes

Origine blog.csdn.net/BGoodHabit/article/details/109044150
conseillé
Classement