如何创建一个小数据集来测试我的CNN?

2024-04-26 06:48:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近实现了一个CNN(使用tensorflowpythonapi),并用MNIST数据集测试了它。在

现在我想用更大的图像(比如100x100p像素)来测试它。在

为此,我使用scikit-learn.feature_提取.image.extract_补丁_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-图像.idx3-ubyte似乎是一种未知类型。所以我想知道,一旦我成功地在我的图像上贴上标签,我可以创建这种文件吗?在

概括起来有两个主要问题: ta如何给我的图像贴上标签? 如何获得可以像MNIST数据集一样使用的数据集?或者,有没有一种更简单的方法来创建与MNIST数据集不同的数据集?在

谢谢大家!在


Tags: 数据from图像imageimportimgnpextract
1条回答
网友
1楼 · 发布于 2024-04-26 06:48:38

如果您只想测试培训时间而不关心实际分类,可以使用以下方法:

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个100×100的白色图像样本和1,0的交替标签。在

如果你已经有了100x100个补丁,你可以在上面的y峈train线上设置范围,使其与你拥有的补丁数量相等。在

相关问题 更多 >