使用深度学习(逻辑回归)处理图像识别的问题
由于Honor Code政策,这里将抹去作业中需要学生填写的代码,只是翻译一下处理的逻辑。
使用神经网络的逻辑回归处理中等大小数据集
这个作业是识别图像是否是一只猫的问题。Cousera提供了一个训练集(209个图片)和一个测试集(50个图片),每个图片是64×64大小的图片,每个像素是由RGB三个通道的数值表示。这些数据集是以H5文件(参考H5文件简介和使用)的形式提供。
用到了如下的Python包:
numpy:Python中进行科学计算的基础包 h5py:处理H5格式文件的通用的包 matplotlib:Python中的画图工具 PIL和Scipy:用来测试模型的包
步骤一:载入数据 官方提供了lr_utils来读取训练集和测试集,这个是已经写好的,不用我们管了(细节可看:https://github.com/amarsic1990/Deep-learning/blob/master/lr_utils.py)
在载入数据之后,官方展示了其中的一个图片:
# Example of a picture
index = 25
plt.imshow(train_set_x_orig[index])
print ("y = " + str(train_set_y[:, index]) + ", it's a '" + classes[np.squeeze(train_set_y[:, index])].decode("utf-8") + "' picture.")
步骤二:对数据预处理
首先需要定义一些变量供后面使用,这里需要提供三个变量:训练集数量(m_train)、测试集数量(m_test)和像素数量(其实就是每个图像的长和宽了,num_px)。这些变量都可以通过之前读取的数据获得。其实大家可以print(train_set_x_orig.shape)就可以看到训练集是什么样的,它是一个高维数组(209,64,64,3),就是209个图片,每个图片有64×64个像素组成,每个像素有3个通道值组成。
