2017-02-21 7 views
1

Я пытаюсь использовать набор данных 50k для convNet в соотношении tr-60%, test-20%, validate-20%. До сих пор я создал заполнитель и feed_dicting его @ sess.run() следующим образом: -Загрузка/feed_dicting большой набор данных в сеансе Tensorflow

tf_train_dataset = tf.placeholder(
    tf.float32, shape=(batch_size, image_size, image_size, num_channels)) 
...... 
... 
feed_dict = {tf_train_dataset : batch_data, tf_train_labels : batch_labels} 
    _, l, predictions = session.run(
     [optimizer, loss, train_prediction], feed_dict=feed_dict) 

, но в соответствии с официальным руководством производительности TF это плохой способ реализации, а именно: - link to TF guide

Если только для особых обстоятельств или, например, кода, не загружайте данные из сеанса из переменных Python, например Словарь.

# This will result in poor performance. 
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

Можете ли вы помочь в реализации очередей для чтения данных в TF?

Один из способов я нашел: -

Создание цит, который загрузке данных в потоке моды

Но я не уверен, 1), если это лучший способ, 2) Я не мог реализовать выше предложение, не могли бы вы помочь в создании этого псевдо-кода? Спасибо большое.

ответ

1

Как правило, плохая идея передавать данные с помощью feed_dict, но вам не всегда приходится писать операционные системы для обработки ваших данных. Вы можете преобразовать ваши данные изображения в формат, который может распознать тензор. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/how_tos/reading_data/convert_to_records.py. Этот процесс можно выполнить параллельно, и вы можете вывести список файлов, так как tensorflow также может использовать список файлов.

Затем следуйте инструкциям на этой странице, чтобы создать очереди и данные фида в python: https://www.tensorflow.org/programmers_guide/reading_data

Смежные вопросы