我最近实现了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数据集不同的数据集?
谢谢大家!
答案 0 :(得分:0)
如果您只想测试培训时间而不关心实际分类,可以使用:
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行中设置范围,使其等于您拥有的补丁数量。