如何在Python中为深度学习准备数据

我已经完成了 Kaggle learn 的深度学习课程,并开始为 MNIST Digit 数据集编写模型。我喜欢理解我所学的代码,并且我遇到过这一点:


def data_prep(raw):

    out_y = keras.utils.to_categorical(raw.label, num_classes)


    num_images = raw.shape[0]

    x_as_array = raw.values[:,1:]

    x_shaped_array = x_as_array.reshape(num_images, img_rows, img_cols, 1)

    out_x = x_shaped_array / 255

    return out_x, out_y

这部分真的让我很困惑。我不明白其中大部分内容。有人可以逐步解释每行代码的作用吗?如果我要在具有多种颜色的彩色图像上执行此操作,这会如何工作?我知道这有点宽泛。稍后,我要做一些涉及彩色图像的事情,但我不确定该怎么做,因为我可以看到黑白“参数”(数组形状中的 1,除以255)


旁注:raw是一个 pandas 数据框


慕工程0101907
浏览 107回答 1
1回答

12345678_0001

在每行上方添加注释以解释其目的:#input is a 2D dataframe of imagesdef data_prep(raw):    #convert the classes in raw to a binary matrix    #also known as one hot encoding and is typically done in ML    out_y = keras.utils.to_categorical(raw.label, num_classes)    #first dimension of raw is the number of images; each row in the df represents an image    num_images = raw.shape[0]    #remove the first column in each row which is likely a header and convert the rest into an array of values    #ML algorithms usually do not take in a pandas dataframe     x_as_array = raw.values[:,1:]    #reshape the images into 3 dimensional    #1st dim: number of images    #2nd dim: height of each image (i.e. rows when represented as an array)    #3rd dim: width of each image (i.e. columns when represented as an array)    #4th dim: the number of pixels which is 3 (RGB) for colored images and 1 for gray-scale images    x_shaped_array = x_as_array.reshape(num_images, img_rows, img_cols, 1)    #this normalizes (i.e. 0-1) the image pixels since they range from 1-255.     out_x = x_shaped_array / 255    return out_x, out_y要处理彩色图像,数组中的第四个维度的大小应为 3,表示RGB 值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python