从 tensorflow 的子硬盘驱动器读取图像
Reading images from sub hard drive for tensorflow
我想要 运行 一个可以读取大量图像的 tensorflow 脚本。但是,这些图像不适合我的本地磁盘驱动器,因此我将它们存储在远程 USB 驱动器上。
我想知道如果图像不适合我的本地硬盘驱动器,我将如何能够从 USB 驱动器读取图像并使用它们来训练我的模型?我需要一次从 USB 驱动器 "batch_size" 读取图像吗?或者我是否可以一次从 USB 驱动器读取所有图像并将它们分成批次,如果它们存储在我的本地硬盘驱动器上,我通常会这样做?
老实说,不建议一次加载所有图像。您的 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
生成器会在每次调用后继续for循环。看看这个例子,看看它是如何运行的,试一试。
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)
这段代码不是最高效的,但应该可以,我现在无法测试。
希望能帮到你,有问题尽管问
我想要 运行 一个可以读取大量图像的 tensorflow 脚本。但是,这些图像不适合我的本地磁盘驱动器,因此我将它们存储在远程 USB 驱动器上。
我想知道如果图像不适合我的本地硬盘驱动器,我将如何能够从 USB 驱动器读取图像并使用它们来训练我的模型?我需要一次从 USB 驱动器 "batch_size" 读取图像吗?或者我是否可以一次从 USB 驱动器读取所有图像并将它们分成批次,如果它们存储在我的本地硬盘驱动器上,我通常会这样做?
老实说,不建议一次加载所有图像。您的 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
生成器会在每次调用后继续for循环。看看这个例子,看看它是如何运行的,试一试。
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)
这段代码不是最高效的,但应该可以,我现在无法测试。
希望能帮到你,有问题尽管问