gpt4 book ai didi

tensorflow - 图像馈送到深度神经网络

转载 作者:行者123 更新时间:2023-11-30 09:46:39 25 4
gpt4 key购买 nike

假设您有一个文件夹,其中包含数据集(很多图像)。您想将这些图像输入深度神经网络进行训练(对我来说,我现在使用 Tensorflow)。

想到的第一个解决方案(非常不优雅且初学者的解决方案)是将图像存储在数组中。对于小数据集来说这是可以的,但是当数据集很大并且图片很大时,这不是一个可行的解决方案,因为我们没有足够的内存。

解决办法是批量读取数据。

我正在努力实现这一点。我感兴趣的数据集是 cultech 的 Caltech-UCSD Birds 200。该数据集提供一个文本文件,其中每一行包含每个图像的路径。这方便了事情。我的解决方案(我正在尝试实现)是定义一个类。模板是:

class Dataset : 
attributes :
images_paths
labels
current_batch_index
batch_size
classes_names
methodes :
get_next_batch()
shuffle()
normalize()

一旦我实例化此类的对象,所有图像的路径都将存储在变量 images_paths 中,并且 ground_truth 标签将存储在标签 (one_hot_encoded) 中。get_next_batch() 方法将使用 current_batch_index 返回一个数组,我们使用路径存储实际图像。数组的大小是batch_size,从images_path和labes读取的索引是(current_batch_index,current_batch_index+batch_size)。 (我使用 scipy.misc.imread 读取图像,并使用 scipy.misc.reshape 将它们 reshape 为固定形状(200x200)。

这样,我将使用该对象在内存中仅存储一批数据,并在训练循环中使用它来将其提供给网络。

问题:您对此有何看法?您通常如何将图像提供给网络?有相关工具吗?有没有工具可以分割你的数据集?

F.Y.I:我正在使用 python 和tensorflow。了解这些 C++ 问题的答案也会很有趣。

谢谢您,并对这么长的帖子表示歉意

最佳答案

Tensorflow 允许根据需要从磁盘批量读取数据,并具有提前缓冲数据以减少延迟的方法(即,当批处理 3 通过网络运行时,批处理 4 位于内存中,批处理 5 位于内存中)。被加载到内存中,原来的批处理 2 所在的位置。)查看 tf.data图书馆。 cifar10 example做了类似你要求的事情,但 cifar10 的格式很奇怪,所以需要进行一些调整。

有人有更好的例子吗?

关于tensorflow - 图像馈送到深度神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51650983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com