Lua 使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?

Lua 使用torch7从本地磁盘读取图像,而这些图像保存在不同的子文件夹中?,lua,luajit,torch,Lua,Luajit,Torch,我有保存在桌子上的图像。保存的数据如下:4个主文件夹(1、2、3和4)每个文件夹有26个子文件夹(这些子文件夹表示图像类别(A、B、C、D、…、Z))。每个子文件夹包含500多个图像。然而,我正在寻找文件或火炬的代码,可以读取这些图像。在MATLAB中,我可以编写一个代码,但在这里,我发现它令人困惑。你能告诉我吗。你能做的就是使用(安装Torch时的库) Penlight提供了一种可以轻松扫描(子)文件夹中的文件的功能。例如,您可以做的是: local pl = require('pl.impo

我有保存在桌子上的图像。保存的数据如下:4个主文件夹(1、2、3和4)每个文件夹有26个子文件夹(这些子文件夹表示图像类别(A、B、C、D、…、Z))。每个子文件夹包含500多个图像。然而,我正在寻找文件或火炬的代码,可以读取这些图像。在MATLAB中,我可以编写一个代码,但在这里,我发现它令人困惑。你能告诉我吗。

你能做的就是使用(安装Torch时的库)

Penlight提供了一种可以轻松扫描(子)文件夹中的文件的功能。例如,您可以做的是:

local pl = require('pl.import_into')()
local t = {}
for i,f in ipairs(pl.dir.getallfiles('/data/foo', '*.jpg')) do
    t[i] = { f, pl.path.basename(pl.path.dirname(f)) }
end
这将创建一个对列表(文件名、class label=“a”或“B”…)。当然,您可以随意更改文件模式(
*.jpg
)或忽略它(在这种情况下,Penlight将简单地列出所有文件)。您还可以动态加载图像:

t[i] = { image.load(f), pl.path.basename(pl.path.dirname(f)) }

或者在操作
t

之后立即执行此操作非常感谢,我认为它可以工作,但我还有其他问题。当我加载图像时,我收到了这条消息(恐慌:调用Lua API时发生未保护的错误(内存不足)),我的图像数量没有那么大,接近100.000个图像,我使用带有16gb RAM的macbook。在这种情况下,不要将所有图像加载到内存中,也就是说,像上面的第一段代码一样保留文件名,只在需要时加载一批图像(也称为延迟加载)。