Tensorflow 2 - 将 csv 行与图像文件相关联

Tensorflow 2 - Associating csv lines with image files

这里是 Tensorflow 的新手,很抱歉,如果问题可能是基础的。

我正在尝试创建一个 GAN,它将根据一小组参数和一个随机向量生成图像。

在训练集中,对于每张图片,我在 CSV 文件中也有一行与该图片相关。

CSV文件的结构是这样的:

参数 1、参数 2、参数 3、ImageFile

4, 7, 2, Image221.png

6, 0, 8, Image044.png

1, 4, 2, Image179.png

我还有一个文件夹,其中包含具有给定文件名的图像文件。

我的问题:我想创建一个管道,它不必一次将整个数据加载到内存中进行训练(这是 tf.data.Dataset 确实表现出的行为),但我需要将每个数据组合起来CSV 文件中的行及其相应的图像文件。

我知道如何使用 list_files 来使用图像,我知道如何使用 make_csv_dataset 来使用 CSV,但是我如何保证每个 CSV 行都必须链接到正确的图像文件?

对于那些面临相同问题的人,我找到了明显的解决方案:您所要做的就是创建一个地图函数,该函数获取文件名,加载它并将加载的图像作为张量插入到替换列中文件名列。

Ex(一列带有文件名,另一列带有 class):

import PIL

def load_image(filename, class):
  img = PIL.Image.Open(filename)
  
  return img, class

dataset = dataset.map(load_image)

请注意,我正在使用枕头库 (PIL) 来加载图像,这不是强制性的。您可以使用您认为合适的任何方式。

这里真正重要的是在函数中加载图像并使用该函数映射数据集。