2017-09-02 54 views
1

我在tf-slim-mnist中讀了一個例子,在Google上讀了一個或兩個答案,但是他們都將數據提供給'圖像'張量和'從已經填滿的數據中標記張量。例如,在TF-超薄MNIST,如何在張量流slim.learning.train中使用feed_dict

# load batch of dataset 
images, labels = load_batch(
    dataset, 
    FLAGS.batch_size, 
    is_training=True) 

def load_batch(dataset, batch_size=32, height=28, width=28, is_training=False): 
    data_provider = slim.dataset_data_provider.DatasetDataProvider(dataset) 

    image, label = data_provider.get(['image', 'label']) 

    image = lenet_preprocessing.preprocess_image(
     image, 
     height, 
     width, 
     is_training) 

    images, labels = tf.train.batch(
     [image, label], 
     batch_size=batch_size, 
     allow_smaller_final_batch=True) 

    return images, labels 

另一個例子,在tensorflow GitHub的問題#5987,

graph = tf.Graph() 
with graph.as_default(): 
    image, label = input('train', FLAGS.dataset_dir) 
    images, labels = tf.train.shuffle_batch([image, label], batch_size=FLAGS.batch_size, capacity=1000 + 3 * FLAGS.batch_size, min_after_dequeue=1000) 
    images_validation, labels_validation = inputs('validation', FLAGS.dataset_dir, 5000) 
    images_test, labels_test = inputs('test', FLAGS.dataset_dir, 10000) 

因爲我的數據的大小是可變的,這是很難填補的張量的數據。

有什麼辦法可以用slim.learning.train()來使用feed_dict嗎?將feed_dict作爲參數添加到train_step_fn()是否是一種正確的方法?如果是,如何?謝謝。

回答

0

我認爲feed_dict不是一個好方法,當輸入數據的大小變化,很難填補內存。

將您的數據轉換爲tfrecords是一種更爲合適的方式。 Here是轉換數據的示例。您可以通過TFRecordReaderparse_example來處理數據以處理輸出文件。

相關問題