TensorFlow: tf.train.batch charge-t-il automatiquement le lot suivant une fois la formation terminée?
Par exemple, après que j'ai créé de mes opérations, de la fed, le lot de données par le biais de l'opération et d'exécuter l'opération, n'tf.le train.lot alimenter automatiquement dans un autre lot de données de la session?
Je pose cette question parce tf.le train.lot a un attribut de allow_smaller_final_batch
ce qui rend possible pour le dernier lot à être chargé comme une taille de moins que la taille du lot. Est-ce à dire que, même sans boucle, le lot suivant pourrait être automatiquement alimenté? À partir du tutoriel codes que je suis un peu confus. Lorsque je charge un seul lot, je reçois littéralement un seul lot de la taille de la forme [batch_size, la hauteur, la largeur, num_channels], mais la la documentation dit qu'il Creates batches of tensors in tensors.
Aussi, quand j'ai lu le tutoriel de code dans le tf-slim procédure pas à pas le tutorieloù il y a une fonction appelée load_batch, il y a seulement 3 tenseurs de retour: images, images_raw, labels
. Où sont les "lots" de données comme expliqué dans la documentation?
Merci pour votre aide.
source d'informationauteur kwotsin
Vous devez vous connecter pour publier un commentaire.
Pas. Rien ne se passe automatiquement. Vous devez appeler
sess.run(...)
à nouveau de charger un nouveau lot.Pas.
tf.train.batch(..)
chargera toujoursbatch_size
tenseurs. Si vous avez par exemple de 100 images et unbatch_size=30
ensuite vous aurez 3*30 lots que vous pouvez appelersess.run(batch)
trois fois avant l'entrée de la file d'attente entre le début (ou de l'arrêter siepoch=1
). Cela signifie que vous manquez de100-3*30=10
échantillons de la formation. Dans le cas où vous ne voulez pas les manquer, vous pouvez fairetf.train.batch(..., allow_smaller_final_batch=True)
alors maintenant, vous aurez 3x 30-échantillon-lots et 1x 10-exemple de lot avant l'entrée de la file d'attente va redémarrer.Permettez-moi aussi d'élaborer avec un exemple de code: