【发布时间】:2026-02-04 12:30:02
【问题描述】:
我正在使用 Tensorflow 构建标准图像分类模型。为此,我输入了图像,每个图像都分配了一个标签({0,1} 中的数字)。因此,数据可以使用以下格式存储在列表中:
/path/to/image_0 label_0
/path/to/image_1 label_1
/path/to/image_2 label_2
...
我想使用 TensorFlow 的排队系统来读取我的数据并将其提供给我的模型。忽略标签,使用string_input_producer 和wholeFileReader 可以轻松实现这一点。代码如下:
def read_my_file_format(filename_queue):
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
example = tf.image.decode_png(value)
return example
#removing label, obtaining list containing /path/to/image_x
image_list = [line[:-2] for line in image_label_list]
input_queue = tf.train.string_input_producer(image_list)
input_images = read_my_file_format(input_queue)
但是,在该过程中,标签会丢失,因为图像数据被故意打乱为输入管道的一部分。将标签与图像数据一起通过输入队列推送的最简单方法是什么?
【问题讨论】:
-
我有一个问题:如何为图像分配标签?我有 3 个图像文件夹,我想为每个图像分配正确的标签。我该怎么做?
-
嗯,这是特定于任务的,具体取决于您要分类的内容。假设您有猫和狗的图像。您可以定义
cats := 0和dogs := 1。然后,您将为所有显示猫的图像分配 0,为所有显示狗的图像分配 1。你可以尝试随意分配标签,只要有明确的语义标准,这样网络就能很好地泛化。
标签: python tensorflow