如何创建一个小数据集来测试我的 CNN?
How to create a small dataset to test my CNN?
我最近实现了一个 CNN(使用 Tensorflow Python API)并使用 MNIST 数据集对其进行了测试。
现在我想用更大的图像(例如 100x100p 像素)对其进行测试。
为此,我正在使用 scikit-learn.feature_extraction.image.extract_patches_2d 来获取 N(这里等于 10)张图像:
from sklearn.feature_extraction import image
import numpy as np
from PIL import Image
HowManyPatches = 10
img = Image.open('./bulldog.jpeg')
imgarray = np.array(img)
patches = image.extract_patches_2d(imgarray, (100, 100), HowManyPatches)
for i in range(HowManyPatches):
imgpatch = Image.fromarray(patches[i], 'RGB')
name = 'patch_' + str(i) + '.jpeg'
imgpatch.save(name)
所以现在我想在我得到的每个补丁上放一个(随机的,因为它只是为了测试训练时间)标签。
我注意到 MNIST 数据集是从这种文件中提取的:t10k-images.idx3-ubyte,这似乎是一种未知类型。所以我想知道,一旦我成功地在我的图像上添加了标签,我可以创建这种文件吗?
总结两个主要问题是:
如何在我的图像上贴上标签?
如何获取可以像 MNIST 数据集一样使用的数据集?或者也许有一种更简单的方法来创建不同于 MNIST 数据集的数据集?
谢谢大家!
如果你只是想测试训练时间而不关心实际分类,你可以使用这个:
x_pattern = np.array([[1 for i in range(100)] for i in range(100)])
x_train = np.array([x_pattern for i in range(100)])
y_train = np.array([1 if i % 2 == 0 else 2 for i in range(100)])
这将为您提供 100 个全白 100x100 图像样本和 1、0 的交替标签。
如果您已经有 100x100 的补丁,您只需在上面的 y_train 行中设置范围,使其等于您拥有的补丁数。
我最近实现了一个 CNN(使用 Tensorflow Python API)并使用 MNIST 数据集对其进行了测试。
现在我想用更大的图像(例如 100x100p 像素)对其进行测试。
为此,我正在使用 scikit-learn.feature_extraction.image.extract_patches_2d 来获取 N(这里等于 10)张图像:
from sklearn.feature_extraction import image
import numpy as np
from PIL import Image
HowManyPatches = 10
img = Image.open('./bulldog.jpeg')
imgarray = np.array(img)
patches = image.extract_patches_2d(imgarray, (100, 100), HowManyPatches)
for i in range(HowManyPatches):
imgpatch = Image.fromarray(patches[i], 'RGB')
name = 'patch_' + str(i) + '.jpeg'
imgpatch.save(name)
所以现在我想在我得到的每个补丁上放一个(随机的,因为它只是为了测试训练时间)标签。
我注意到 MNIST 数据集是从这种文件中提取的:t10k-images.idx3-ubyte,这似乎是一种未知类型。所以我想知道,一旦我成功地在我的图像上添加了标签,我可以创建这种文件吗?
总结两个主要问题是: 如何在我的图像上贴上标签? 如何获取可以像 MNIST 数据集一样使用的数据集?或者也许有一种更简单的方法来创建不同于 MNIST 数据集的数据集?
谢谢大家!
如果你只是想测试训练时间而不关心实际分类,你可以使用这个:
x_pattern = np.array([[1 for i in range(100)] for i in range(100)])
x_train = np.array([x_pattern for i in range(100)])
y_train = np.array([1 if i % 2 == 0 else 2 for i in range(100)])
这将为您提供 100 个全白 100x100 图像样本和 1、0 的交替标签。
如果您已经有 100x100 的补丁,您只需在上面的 y_train 行中设置范围,使其等于您拥有的补丁数。