Comment former TensorFlow réseau à l'aide d'un générateur pour produire des intrants?
La TensorFlow docs décrire un tas de façons de lire les données à l'aide de TFRecordReader, TextLineReader, QueueRunner etc et les files d'attente.
Ce que j'aimerais faire, c'est beaucoup, beaucoup plus simple: j'ai un python fonction de générateur qui produit une séquence infinie de données d'entraînement (X, y) n-uplets (les deux sont des tableaux numpy, et la première dimension est la taille du lot). J'ai juste envie de former un réseau à l'aide de données en entrées.
Est-il un simple autonome de l'exemple de la formation d'un TensorFlow réseau à l'aide d'un générateur qui produit les données? (le long des lignes de la MNIST ou l'ICRA exemples)
- Il y a
tf.data.Dataset.from_generator
, qui peut être utile pour votre cas. - Un exemple de
tf.data.Dataset.from_generator
Vous devez vous connecter pour publier un commentaire.
Supposons que vous avez une fonction qui génère des données:
Maintenant, vous avez besoin d'une autre fonction qui décrit votre modèle d'architecture. Il pourrait être n'importe quelle fonction qui traite de X et de a à prédire y en sortie (par exemple, réseau de neurones).
Supposons que la fonction accepte X et y comme des entrées, calcule une prédiction de y à partir de X, d'une certaine façon et renvoie la perte de fonction (par exemple la croix-entropie ou MSE dans le cas de la régression) entre y et y prévues:
Pour faire de votre modèle, vous avez besoin de définir des espaces réservés pour les X et y, puis exécutez une session:
Espaces réservés sont quelque chose comme "variables indépendantes" dont vous avez besoin pour spécifier lors de l'exécution de la session par
feed_dict
:Espère que vous le trouverez utile. Cependant, gardez à l'esprit que ce n'est pas totalement mise en œuvre, mais plutôt une pseudo-depuis que vous avez spécifié presque pas de détails.
Estimator.train
à accepter untf.data.Dataset
, ce qui peut être fait avectf.data.Dataset.from_generator
..meta
fichier est plus gros et plus grands tandis que la formation, et ma formation de vitesse ralentit rapidement. Je suppose que certains nouveaux ops est ajouté au modèle de graphique. J'ai pensé qu'il pourrait résulter deyield
. Une idée? Je suis dans l'immense douleur sur ce problème...