matlab - torch 数据集的结构是什么?

标签 matlab dataset torch mnist

我开始使用 torch 7,我想制作我的数据集用于分类。我已经制作了像素图像和相应的标签。但是,我不知道如何将这些数据提供给 torch 。我读了一些别人的代码,发现他们使用的数据集的扩展名为“.t7”,我认为它是张量类型。这样对吗?我想知道如何将我的像素图像(实际上,我使用 MNIST 数据集用 Matlab 制作它们)转换为与 torch 兼容的 t7 扩展。必须有 t7 格式的数据集结构,但我找不到它(也找不到标签)。

总而言之,我有像素图像和标签,想将它们转换为与手电筒兼容的 t7 格式。

提前致谢!

最佳答案

数据集“.t7”是带有标签的张量表。 例如下面的 lua 代码:

if (not paths.filep("cifar10torchsmall.zip")) then
    os.execute('wget -c https://s3.amazonaws.com/torch7/data/cifar10torchsmall.zip')
    os.execute('unzip cifar10torchsmall.zip')
end
Readed_t7 = torch.load('cifar10-train.t7')
print(Readed_t7)

将通过 itorch 返回:

{
  data : ByteTensor - size: 10000x3x32x32
  label : ByteTensor - size: 10000
}

这意味着该文件包含一个包含两个 ByteTensor 的表格,一个标记为“数据”,另一个标记为“标签”。

要回答您的问题,您应该首先阅读您的图像(例如使用 torchx :https://github.com/nicholas-leonard/torchx/blob/master/README.md),然后将它们与您的张量标签一起放入表格中。以下代码只是帮助您解决问题的草稿。它考虑了以下情况:有两个类,所有图像都在同一个文件夹中,并通过这些类排序。

require 'torchx';

--Read all your dataset (the chosen extension is png)
files = paths.indexdir("/Path/to/your/images/", 'png', true)
data1 = {}
for i=1,files:size() do
   local img1 = image.load(files:filename(i),3)
   table.insert(data1, img1)
end

--Create the table of label according to 
label1 = {}
for i=1, #data1 do
    if i <= number_of_images_of_the_first_class then
        label1[i] = 1
    else
        label1[i] = 2
    end
end

--Reshape the tables to Tensors
label = torch.Tensor(label1)
data = torch.Tensor(#data1,3,16,16)
for i=1, #data1 do
    data[i] = data1[i]
end

--Create the table to save
Data_to_Write = { data = data, label = label }

--Save the table in the /tmp
torch.save("/tmp/Saved_Data.t7", Data_to_Write)

应该可以编写一个不那么可怕的代码,但是这个代码详细说明了所有步骤并适用于 torch 7 和 Jupyter 5.0.0。

希望对您有所帮助。

问候

关于matlab - torch 数据集的结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37657533/

相关文章:

matlab - 为 for 循环中的每次迭代创建一个单独的日志文件

java - 使用 matlabcontrol API 在 Netbeans 中调用从 Java 调用 matlab 函数

matlab - 将C结构转换为Matlab结构

lua - Torch7-内存不足: you tried to allocate 0GB.购买新的RAM

python - 将单个图加载到pytorch几何数据对象中进行节点分类

matlab - matlab 脚本中是否使用了某些 matlab 例程?

java - 我想知道如何在 Spark withColumn 中使用过滤器进行计数

php - 比较大型 MySQL 数据集与 PHP

javascript - 显示数据文件属性中的复选框值

python - 如何使用 torch 从 caffe 模型中获取图层