2016-03-18 32 views
7

Tôi đã cố gắng nạp 1750 * 1750 hình ảnh vào Tensorflow, nhưng tôi không biết cách gắn nhãn và nạp dữ liệu sau khi tôi chuyển đổi hình ảnh thành Tensor bằng hàm tf.image.decode_jpeg().Làm cách nào để bạn tải, gắn nhãn và nạp dữ liệu jpeg vào Tensorflow?

Hiện nay, mã của tôi là:

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() 

Bây giờ, như tôi đã nói trước đó, tôi cần phải ăn và nhãn dữ liệu. Tôi đã thấy các tệp hướng dẫn CIFAR-10, nhưng chúng đã lưu trữ các nhãn trong một tệp và tôi dự định không làm theo cách đó.

Tôi khá mới với Tensorflow vì vậy hãy giữ phản hồi càng chi tiết càng tốt.

Cảm ơn!

+0

Cách sử dụng cùng một định dạng MINST_data và sử dụng input_data.py để đọc nó? – ERed

Trả lời

22

Tùy thuộc vào những gì bạn đang cố gắng làm, có một số hướng dẫn để xem xét.

  1. Nếu bạn chỉ muốn chạy suy luận về một tập tin JPEG tùy ý (ví dụ nhãn không bắt buộc), sau đó bạn có thể làm theo các ví dụ về classify_image.py mà nguồn cấp dữ liệu trong một hình ảnh JPEG thành một mạng Inception pre-đào tạo :

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

  2. Nếu bạn muốn để đào tạo (hoặc tinh chỉnh) một mô hình trên một nhỏ tập hợp dữ liệu tùy chỉnh các hình ảnh JPEG, sau đó hãy nhìn vào ví dụ này để làm thế nào để đào tạo một mô hình tắt một tập nhỏ các hình ảnh JPEG.

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

  3. Nếu bạn muốn để đào tạo (hoặc tinh chỉnh) một mô hình trên diện rộng bộ dữ liệu tùy chỉnh các hình ảnh JPEG, sau đó đọc nhiều file JPEG cá nhân sẽ không hiệu quả và làm chậm đào tạo rất nhiều .

Tôi khuyên bạn nên làm theo quy trình được mô tả trong thư viện mẫu/thư viện mô hình chuyển đổi thư mục ảnh JPEG thành RecordIO đã phân đoạn chứa hình ảnh JPEG được tuần tự hóa.

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

hướng dẫn để chạy kịch bản chuyển đổi có sẵn ở đây:

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

Sau khi chạy chuyển đổi, sau đó bạn có thể sử dụng/sao chép các đường ống hình tiền xử lý được sử dụng bởi khi thành lập/mô hình.

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

+0

Có phải các phương pháp được giới thiệu ở đây là các phương pháp chung có thể được sử dụng cho bất kỳ mô hình tensorflow nào khác thay vì chỉ là mạng khởi động? Cảm ơn. – user297850

+0

Có, đây là những cách tiếp cận chung chung mặc dù các tập lệnh ở trên hướng đến các vấn đề dựa trên nhận dạng hình ảnh. – user5869947

Các vấn đề liên quan