如何从计算机中加载图像数据集,然后分为两个数据集进行培训和测试



图像数据描述:2D二进制图像具有200x200大小

存在123个标签,每个类(标签)包含10个图像帧,其中我认为剩下的前4个图像将是培训数据集。

data_path ='c: gaitdatasetb-silh_perfectlyalingedimages_active_energyimage '

在该代码中,内置的MNIST数据集加载了我要加载图像数据集进行分类的地方。

我该怎么做?

如何从我的计算机上加载图像数据集并分为两个数据集进行培训和测试?如上所述。

Python代码:

    import keras
    from keras.datasets import mnist
    from keras.models import Sequential
    from keras.layers import Dense, Dropout, Flatten
    from keras.layers import Conv2D, MaxPooling2D
    import numpy as np
    batch_size = 128
    num_classes = 10
    epochs = 12
    # input image dimensions
    img_rows, img_cols = 28, 28
    # the data, split between train and test sets
    (x_train, y_train), (x_test, y_test) = mnist.load_data() # I want to load data from data_Path='C:GaitDatasetB-silh_PerfectlyAlingedImages_Active_EnergyImage'
    x_train = x_train.reshape(60000,28,28,1)
    x_test = x_test.reshape(10000,28,28,1)
    print('x_train shape:', x_train.shape)
    print(x_train.shape[0], 'train samples')
    print(x_test.shape[0], 'test samples')

在该代码中,内置的MNIST数据集加载了我要加载图像数据集进行分类的地方。

我该怎么做?

代码的参考:https://towardsdatascience.com/build-your-own-convolution-nater-network-network-in-5-mins-4217c2c2cf964f

有此软件包用于处理图像数据。skimage.io.imread正在返回ndarray,这对Keras非常有效。因此,您可以这样读取这样的数据:

all_images = []
for image_path in os.listdir(path):
  img = io.imread(image_path , as_grey=True)
  img = img.reshape([WIDTH, HEIGHT, 1])
  all_images.append(img)
x_train = np.array(all_images)

现在您已经准备好培训数据了。您还需要制作一系列标签。我称之为y_train。您可以这样将其转换为一局:

y_train = keras.utils.to_categorical(y_train, num_classes)

休息一切都与mnist示例相同。

我根据您的建议准备了我的代码:

    path1='C:\Data\For new Paper3Old\GaitDatasetB-silh_PerfectlyAlingedImages_EnergyImage\';
    all_images = []
    subjects = os.listdir(path1)
    numberOfSubject = len(subjects)
    print('Number of Subjects: ', numberOfSubject)
    for number1 in range(0, numberOfSubject):  # numberOfSubject
        path2 = (path1 + subjects[number1] + '/')
        sequences = os.listdir(path2);
        numberOfsequences = len(sequences)
        for number2 in range(4, numberOfsequences):
            path3 = path2 + sequences[number2]
            img = cv2.imread(path3 , 0)
            img = img.reshape(200, 200, 1)
            all_images.append(img)
    x_train = np.array(all_images)
    y_train = keras.utils.to_categorical(y_train, num_classes)

,但最后一行代码反映了一个错误:

y_train = keras.utils.to_categorical(y_train,num_classes)名称:名称'y_train'未定义

我该怎么做才能将标签存储在y_train变量中?在循环的第二次运行时,所有图像都应相同。

遵循我的代码,以便可以将其嵌入CNN过程。https://towardsdatascience.com/build-your-own-convolution-nator-network-network-in-5-mins-4217c2cf964f

最新更新