准备数据如何在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是熊猫数据帧

在每行上方添加注释以解释其用途:

#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

要处理彩色图像,数组中的第4个维度的大小应该是3,表示RGB值。查看本教程,了解有关细胞神经网络及其输入的更深入信息。

最新更新