如何将jpeg数据加载,标记和提供给Tensorflow?

Zan*_*ang 11 python jpeg machine-learning image-processing tensorflow

我一直在尝试将1750*1750图像输入Tensorflow,但在使用tf.image.decode_jpeg()函数将图像转换为Tensor之后,我不知道如何标记和提供数据.

目前,我的代码是:

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()
Run Code Online (Sandbox Code Playgroud)

现在,正如我之前所说,我需要提供和标记数据.我已经看过CIFAR-10教程文件,但是他们将标签存储在一个文件中,我打算不这样做.

我对Tensorflow很新,所以请尽可能详细地保持响应.

谢谢!

小智 26

根据您的尝试,有几个方向需要考虑.

  1. 如果您只想对任意JPEG文件进行推理(即不需要标签),那么您可以按照classify_image.py的示例,将JPEG图像输入到预先训练的Inception网络中:

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

  2. 如果您希望在JPEG图像的小型自定义数据集上训练(或微调)模型,那么请查看此示例,了解如何从一小组JPEG图像中训练模型.

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

  3. 如果您希望在JPEG图像的大型自定义数据集上训练(或微调)模型,那么读取许多单独的JPEG文件将是低效的并且极大地减慢了训练速度.

我建议按照初始/模型库中描述的过程将JPEG图像的目录转换为包含序列化JPEG图像的分片RecordIO.

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

有关运行转换脚本的说明,请访问:

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

运行转换后,您可以使用/复制初始/模型使用的图像预处理管道.

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