为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕工程0101907 2023-10-05 16:45:51
我已经完成了 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 数据框
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

在每行上方添加注释以解释其目的:


#input is a 2D dataframe of images

def 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 值。


查看完整回答
反对 回复 2023-10-05
  • 1 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信