老实说,不建议一次加载所有图像。您的 USB 记忆棒只是另一个可以读取的路径,在 linux 中它将存储在根目录下的 /media 文件夹下。然后我建议像这样获取内存中的所有图像路径:
import os
folder_to_image_map = ""
image_paths = [os.path.join(folder_to_image_map, p) for p in os.listdir(folder_to_image_map)]
图像路径将从提供的文件夹加载到所有图像路径中。
然后你制作一个像这样的生成器:
from PIL import Image
def generator(BATCH_SIZE)
batch = []
for file_name in image_paths:
img = Image.open(file_name)
""" implement your preprocessing """
batch.append(img)
if len(batch) >= BATCH_SIZE:
g_batch = batch
batch = []
yield g_batch
生成器将在每次调用后继续循环。看看这个例子,看看它是如何运行的,试一试。
def generator():
ll = [1,2,3,4,5,6,7,8,9,10]
for l in ll:
yield l
run_gen = generator()
print(next(run_gen))
print(next(run_gen))
# or:
for j in run_gen:
print(j)
这段代码不是最有效的,但它应该可以工作,我目前无法测试它。
希望能帮到你,有问题可以问