2016-12-19 17 views
7

Trong CIFAR-10 TensorFlow hướng dẫn, tôi gặp phải những dòng sau:như thế nào tf.train.batch tạo một lô

images, label_batch = tf.train.batch(
     [image, label], 
     batch_size=batch_size, 
     num_threads=num_preprocess_threads, 
     capacity=min_queue_examples + 3 * batch_size) 

Chức năng tf.train.batch() dường như được tham gia như một đầu vào chỉ có một hình ảnh và một nhãn. Làm thế nào để nó tạo ra một lô với nhiều hình ảnh?

Trả lời

7

Nhập dữ liệu vào cặp [image, label] rằng, vâng, đó là một cặp duy nhất. Tuy nhiên, tf.train.batch tạo một hàng đợi trong nội bộ. Các chủ đề num_threads sẽ tích lũy các cặp vào hàng đợi cho đến khi đạt được capacity.

images, label_batch là, trên thực tế, hoạt động dequeue.

Hãy nhớ rằng bạn đang xác định một đồ thị tính toán, do đó cặp [image, label] đại diện cho hai nút của đồ thị và các khác nhau thực cặp image, label của tập huấn luyện của bạn, sẽ chảy qua các nút. Bằng cách này, các tf.train.batch có thể nắm bắt dòng chảy của hình ảnh và nhãn và điền vào hàng đợi.

+2

Làm cách nào để in các hình ảnh hiện tại đang được khắc phục để đào tạo? Tôi đang sử dụng slim.learning.train ở dạng tương tự như được đưa ra ở đây https://github.com/tensorflow/models/blob/master/slim/slim_walkthough.ipynb –

Các vấn đề liên quan