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



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

我正在尝试创建一个GAN,它将基于一小组参数加上随机向量生成图像。

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

CSV文件的结构如下:

参数1、参数2、参数3、图像文件

4,7,2,图像221.png

6,0,8,图像044.png

1,4,2,图像179.png

我还有一个文件夹,里面有给定文件名的图像文件。

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

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

对于那些面临同样问题的人,我找到了显而易见的解决方案:你所要做的就是创建一个映射函数,它接受文件名,加载它,并将加载的图像作为张量插入到替换文件名列的列中。

Ex(用于一个具有文件名的列和一个具有类的列(:

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

return img, class
dataset = dataset.map(load_image)

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

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

最新更新