2015-12-20 3 views
5

Я пытаюсь изучить tenforflow, следуя руководству Convolutional Neural Networks, но когда я пытался выяснить, как cifar10_input.py загружает данные из cifar-10-batches-bin, I столкнулись с проблемой, что Tensor.eval() выполняется в течение очень долгого времени или работает вечно без результата. код выглядит так:Session.run() /Tensor.eval() прогона Tensorflow для сумасшедшего долгого времени

import tensorflow as tf 
from tensorflow.models.image.cifar10 import cifar10_input 

filenames = ['/Users/me/Downloads/cifar-10-batches-bin/data_batch_1.bin'] 
filename_queue = tf.train.string_input_producer(filenames) 
read_input = cifar10_input.read_cifar10(filename_queue) 
reshaped_image = tf.cast(read_input.uint8image, tf.float32) 

with tf.Session() as sess: 
    print reshaped_image.eval() 

Код в основном из cifar10_input.py и файл data_batch_1.bin является извлекается из cifar-10-binary.tar.gz

Обычно я могу наблюдать тензор, используя свой метод eval().. Но в этом случае он работает постоянно в течение более длительного времени, чем когда-либо (я ждал почти час, и он все еще работал). Что-то не так в моем коде?

ответ

6

1) В качестве основной проверки вменяемости: ls -al /Users/me/Downloads/cifar-10-batches-bin/data_batch_1.bin

2) Не забудьте:

init = tf.initialize_all_variables() 
sess.run(init) 

3) tf.train.start_queue_runners() (после создания сеанса)

Это, вероятно, # 3. В string_input_producer добавляется очередь для очереди в коллекцию QUEUE_RUNNERS, которую необходимо запустить.

+0

Большое спасибо, # 3 действительно решила мою проблему, но на самом деле метод должен быть 'tf.train.start_queue_all_variables()'. – hsc

+0

Упс, правильно - спасибо, принял ваше обновление, чтобы исправить опечатку. – dga

+0

Большое вам спасибо! –

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