为 CNN 创建图像数据集的最佳方法

人工智能 卷积神经网络 数据集
2021-11-18 01:53:13

我正在创建一个由许多图像组成的数据集,这些图像是通过对长时间序列进行预处理而创建的。每个图像是一个 (128,128) 的数组,并且有四个类。我想在 scikit-learn.database 中构建一个类似于 MNIST 的数据集,但我不知道该怎么做。

我的目标是有一些我可以这样称呼的东西:

(x_train, y_train), (x_test, y_test) = my_data()

我应该将它们保存为数字吗?或作为csv?实现这一点的最佳方法是什么?

1个回答

我找到了这个解决方案,并对任何改进或建议感到高兴:

首先,我创建了一个图像的随机数据集,它是 28x28 像素,以及相应的随机标签(为了清楚起见,我还有另一个图像数据集,这只是为了解释)。然后我使用 sklearn 模块来拆分数据:

import numpy as np
from sklearn.model_selection import train_test_split


# create the data and labels
def pixel_dataset(n_data=10, dpi = 28):

    ary = np.zeros((n_data, dpi, dpi))
    label = [] 

    for i in np.arange(n_data):
        labels =['a', 'b', 'c']
        ary[i,::] = np.reshape(np.array(np.random.randint(0, 255, 28*28)),(28,28))
        label.append(np.random.choice(labels, 1)[0])

    return ary, label 


# create the test train split    
def mydata(test_size=0.3):

    X, y = pixel_dataset()       
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = test_size) 
    return (X_train, y_train), (X_test, y_test)