¿Cómo cargar, etiquetar y alimentar datos jpeg en Tensorflow?

He estado tratando de alimentar 1750 * 1750 imágenes en Tensorflow, pero no sé cómo etiquetar y alimentar los datos después de convertir las imágenes en un Tensor utilizando la función tf.image.decode_jpeg ().

Actualmente, mi código es:

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

Ahora, como dije antes, necesito alimentar y etiquetar los datos. He visto los archivos de tutoriales de CIFAR-10, pero almacenaron las tags en un archivo y planeo no hacerlo de esa manera.

Soy bastante nuevo en Tensorflow, así que mantenga la respuesta lo más detallada posible.

¡Gracias!

Dependiendo de lo que esté tratando de hacer, hay varias direcciones a considerar.

  1. Si solo desea realizar inferencia en un archivo JPEG arbitrario (es decir, no se requieren tags), puede seguir el ejemplo de classify_image.py que alimenta una imagen JPEG en una red de inicio pre-entrenada:

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

  2. Si desea entrenar (o afinar) un modelo en un pequeño conjunto de datos personalizados de imágenes JPEG, observe este ejemplo para saber cómo entrenar a un modelo con un pequeño conjunto de imágenes JPEG.

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

  3. Si desea entrenar (o afinar) un modelo en un gran conjunto de datos personalizados de imágenes JPEG, entonces la lectura de muchos archivos JPEG individuales será ineficiente y ralentizará enormemente el entrenamiento.

Sugeriría seguir el procedimiento descrito en la biblioteca de inicio / modelo que convierte un directorio de imágenes JPEG en un RecordIO fragmentado que contiene imágenes JPEG serializadas.

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

Las instrucciones para ejecutar el script de conversión están disponibles aquí:

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

Después de ejecutar la conversión, puede emplear / copiar la tubería de preprocesamiento de imagen utilizada por el inicio / modelo.

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