2016-07-16 3 views
2

Я скармливание tensorflow с omputation (поезд) графом, используя входную очередь и tf.train.batch функции, которая готовит огромный тензор с данными. У меня есть очередная очередь с тестовыми данными, которые я хотел бы подать на график каждые 50 шагов.Tensorflow: Feeding заполнителя с переменной

Вопрос

Учитывая форму входа (тензоры) я должен определить отдельный тестовый график для вычисления данных тестирования или я могу как-то повторно поезд GRAP?

# Prepare data 
batch = tf.train.batch([train_image, train_label], batch_size=200) 
batchT = tf.train.batch([test_image, test_label], batch_size=200) 

x = tf.reshape(batch[0], [-1, IMG_SIZE, IMG_SIZE, 3]) 
y_ = batch[1] 
xT = tf.reshape(batchT[0], [-1, IMG_SIZE, IMG_SIZE, 3]) 
y_T = batchT[1] 

# Graph definition 
train_step = ... # train_step = g(x) 

# Session 
sess = tf.Session() 
sess.run(tf.initialize_all_variables()) 

for i in range(1000): 
    if i%50 == 0: 
    # here i would like reuse train graph but with tensor x replaced by x_t 
    # train_accuracy = ? 
    # print("step %d, training accuracy %g"%(i, train_accuracy)) 

train_step.run(session=sess) 

Я хотел бы использовать заполнители, но я не могу кормить tf.placeholder с tf.Tensors и это вещь, я получаю из очередей. Как это должно быть сделано?

Я действительно только начинаю.

ответ

2

Посмотрите, как это делается в MNIST example: вам нужно использовать заполнитель с инициализатором не-тензорной формы ваших данных (например, имена файлов или CSV), а затем внутри графика использовать slice_input_producer -> deocde_jpeg (или что-то еще ...) -> tf.train.batch(), чтобы создавать партии и передавать их на график вычислений.

Так что ваш график выглядит как что-то вроде:

  • Закончены Места инициализировано со списком больших имен файлов/CSV/диапазоном
  • tf.slice_input_producer
  • tf.image.decode_jpeg или tf.py_func - загрузка фактических данных
  • tf.train.batch - создать мини-партии для обучения
  • подать на вашу модель
+0

То, что я действительно спрашивал, - это хорошая конструкция, включающая входной узел данных в график тензоров. Но я знаю это только через несколько недель :) – Pietrko