gpt4 book ai didi

machine-learning - 如何创建类似于 cifar-10 的数据集

转载 作者:行者123 更新时间:2023-11-30 08:22:01 24 4
gpt4 key购买 nike

我想创建一个与 cifar-10 数据集格式相同的数据集,以便与 Tensorflow 一起使用。它应该有图像和标签。我希望能够获取 cifar-10 代码,但使用不同的图像和标签,并运行该代码。

最佳答案

首先我们需要了解CIFAR10数据集的格式。如果我们引用:https://www.cs.toronto.edu/~kriz/cifar.html ,特别是二进制版本部分,我们看到:

the first byte is the label of the first image, whichis a number in the range 0-9. The next 3072 bytes are the values ofthe pixels of the image. The first 1024 bytes are the red channelvalues, the next 1024 the green, and the final 1024 the blue. Thevalues are stored in row-major order, so the first 32 bytes are thered channel values of the first row of the image.

直观上,我们需要以这种格式存储数据。接下来,您首先可以做的基线实验是获取与 CIFAR10 完全相同大小和相同类别数量的图像,并将它们设置为这种格式。这意味着您的图像大小应为 32x32x3 并具有 10 个类别。如果您可以成功运行此程序,那么您可以进一步考虑单 channel 、不同大小的输入和不同类等情况。这样做意味着您必须更改代码其他部分中的许多变量。你必须慢慢地完成。

我正在制定一个通用模块。我的代码位于 https://github.com/jkschin/svhn 。如果您引用 svhn_flags.py 代码,您将看到许多可以更改以满足您的需求的标志。我承认它现在很神秘,因为我还没有清理它以使其可读,但它有效。如果你愿意花一些时间粗略地看一下,你就会发现一些东西。

这可能是在 CIFAR10 上运行您自己的数据集的简单方法。您当然可以复制神经网络定义并实现您自己的阅读器、输入格式、批处理等,但如果您希望它快速启动并运行,只需调整您的输入以适合 CIFAR10。

编辑:

一些非常非常基本的代码,我希望能有所帮助。

from PIL import Image
import numpy as np

im = Image.open('images.jpeg')
im = (np.array(im))

r = im[:,:,0].flatten()
g = im[:,:,1].flatten()
b = im[:,:,2].flatten()
label = [1]

out = np.array(list(label) + list(r) + list(g) + list(b),np.uint8)
out.tofile("out.bin")

这会将图像转换为可供 CIFAR10 使用的字节文件。对于多个图像,只需继续连接数组即可,如上面的格式所示。要检查您的格式是否正确,特别是针对询问者的用例,您应该获得 4274273 + 1 = 546988 字节的文件大小。假设您的图片是 RGB 且值范围为 0-255。验证完毕后,您就可以在 TensorFlow 中运行了。请使用 TensorBoard 来可视化一张图像,只是为了保证正确性。

编辑2:

根据提问者在评论中提出的问题,

if not eval_data:
filenames = [os.path.join(data_dir, 'data_batch_%d.bin' % i)
for i in xrange(1, 6)]

如果你真的想让它按原样工作,你需要研究 CIFAR10 代码的函数调用。在 cifar10_input 中,批处理是硬编码的。因此,您必须编辑这行代码以适合 bin 文件的名称。或者,将图像均匀分布到 6 个 bin 文件中。

关于machine-learning - 如何创建类似于 cifar-10 的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032675/

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