Python 3.x 将大量图像从内存流到Keras生成器

Python 3.x 将大量图像从内存流到Keras生成器,python-3.x,tensorflow,keras,Python 3.x,Tensorflow,Keras,我试图用大量的图片和标签来训练keras模型。我想使用model.fit_生成器,以某种方式将输入图像和标签从内存中流出来,因为我们在加载图像后在内存中准备所有数据。问题是,我们有大量的大图像,然后我们剪辑成更小的尺寸,并提供给模型。我们需要一个While循环中的for循环。 大概是这样的: 为True时: 对于文件中的文件:#假设有500个文件(图像) image=ReadImage(文件) X=准备图像(图像)#在这里它被切割并准备成特定的形状 Y=标签 产量X[批次开始:批次结束],Y[批

我试图用大量的图片和标签来训练keras模型。我想使用model.fit_生成器,以某种方式将输入图像和标签从内存中流出来,因为我们在加载图像后在内存中准备所有数据。问题是,我们有大量的大图像,然后我们剪辑成更小的尺寸,并提供给模型。我们需要一个While循环中的for循环。 大概是这样的:

为True时:
对于文件中的文件:#假设有500个文件(图像)
image=ReadImage(文件)
X=准备图像(图像)#在这里它被切割并准备成特定的形状
Y=标签
产量X[批次开始:批次结束],Y[批次开始:批次结束]
在生成第一个图像的最后一批后,我们需要在for循环中加载下一个图像,准备数据并在同一时间再次生成。对于第二个时代,我们再次需要所有的图像。这里的问题是,我们在内存中准备了所有内容,从一张图像开始,我们创建数百万个训练数据,然后移动到下一张图像。我们无法将所有数据写入磁盘并从目录中流出,因为这需要大量的磁盘空间


有什么提示吗?

不知道你在问什么。您在自己的questoin中对解决方案进行了编码。该代码将为培训提供X[批处理开始:批处理结束]和Y[批处理开始:批处理结束],for循环将加载第二个映像并提供批处理开始+批处理大小:批处理结束+批处理大小,即使它没有完成第一个映像和所有批处理。此外,我们如何在培训前将X、Y分解为培训和测试数据?