2016-03-18 10 views
7

1750 * 1750 görüntüleri Tensorflow'a beslemeye çalışıyorum, ancak görüntüleri tf.image.decode_jpeg() işlevini kullanarak bir Tensor'a dönüştürdükten sonra verileri nasıl etiketleyeceğimi ve besleyeceğimi bilmiyorum.Jpeg verilerini Tensorflow'a nasıl yükler, etiketler ve beslersiniz?

Şu anda, benim kodudur: Artık

import tensorflow as tf 
import numpy as np 

import imageflow 
import os, glob 

sess = tf.InteractiveSession() 

def read_jpeg(filename_queue): 
reader = tf.WholeFileReader() 
key, value = reader.read(filename_queue) 

my_img = tf.image.decode_jpeg(value) 
my_img.set_shape([1750, 1750, 1]) 
print(value) 
return my_img 

##################################################### 
def read_image_data(): 
jpeg_files = [] 
images_tensor = [] 

i = 1 
WORKING_PATH = "/Users/Zanhuang/Desktop/NNP/DATA" 
jpeg_files_path = glob.glob(os.path.join(WORKING_PATH, '*.jpeg')) 

for filename in jpeg_files_path: 
    print(i) 
    i += 1 
    jpeg_files.append(filename) 


filename_queue = tf.train.string_input_producer(jpeg_files) 

mlist = [read_jpeg(filename_queue) for _ in range(len(jpeg_files))] 

init = tf.initialize_all_variables() 

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

images_tensor = tf.convert_to_tensor(images_tensor) 


sess.close() 

, daha önce söylediğim gibi ben verileri beslemek ve etiket gerekir. CIFAR-10 eğitim dosyalarını gördüm, ancak etiketleri bir dosyada sakladılar ve bu şekilde yapmadığımı düşünüyorum.

Tensorflow konusunda oldukça yeniyim, lütfen yanıtı olabildiğince ayrıntılı bir şekilde saklayın.

Teşekkürler!

+0

Nasıl MINST_data aynı biçimi kullanarak ve okumaya input_data.py kullanmaya ne dersiniz? – ERed

cevap

22

Yapmaya çalıştığınız şeye bağlı olarak, dikkate alınması gereken birkaç yön vardır.

  1. sadece (yani etiket gerekli değildir) keyfi bir JPEG dosyası üzerinde çıkarım çalıştırmak isterseniz, o zaman önceden eğitilmiş Başlangıç ​​ağına JPEG görüntüsünde besleyen classify_image.py örneğini takip edebilirsiniz : Eğer JPEG görüntülerin bir küçük özel veri setinde bir model eğitmek isteyen (ya da ince ayar) yoksa

    github.com/tensorflow/models/blob/master/tutorials/image/imagenet/classify_image.py

  2. ardından bir model eğitmek için nasıl bu örnekte bir göz atın küçük bir JPEG görüntüsü kümesi. Eğer JPEG görüntülerin bir büyük özel veri setinde bir model eğitmek isteyen (ya da ince ayar) yoksa

    github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/image_retraining/retrain.py

  3. ardından birçok bireysel JPEG dosyaları okuma verimsiz olması ve müthiş eğitim yavaşlatacaktır .

Ben tefrika JPEG görüntüler içeren kanatlı bir RecordIO içine JPEG görüntülerin bir dizin dönüştürür başlangıç ​​/ model kitaplığında açıklanan prosedürü takip öneririm. Dönüşüm komut dosyasını çalıştırmak için

github.com/tensorflow/models/blob/master/research/inception/inception/data/build_image_data.py

Talimatları burada bulabilirsiniz:

github.com/tensorflow/models/blob/master/research/inception/README.md#how-to-construct-a-new-dataset-for-retraining

dönüşüm çalıştırdıktan sonra, o zaman/istihdam başlangıç ​​/ model tarafından kullanılan görüntü ön boru hattını kopyalayabilir.

github.com/tensorflow/models/blob/master/research/inception/inception/image_processing.py

+0

Burada sunulan yaklaşımlar, sadece başlangıç ​​ağının yerine herhangi bir tensorflow modeline kullanılabilen jenerik olanlardır. Teşekkürler. – user297850

+0

Evet, yukarıdaki komut dosyaları görüntü tanıma temelli sorunlara daha çok bağlı olmasına rağmen, bunlar genel yaklaşımlardır. – user5869947