深度学习-图片识别(上)
本文主要针对优达学城深度学习课程中的练习题,整理练习内容,有兴趣者可结合本文内容然后按练习题实践,帮助理解。
任务一:下载并整理数据
任务主要完成图片下载、图片内容数字化、选取三个数据集、打乱顺序、持久化数据等,步骤如下:
- 下载包含10个字母的两份图片数据,large与small
large与small不止数量大小区别,还在于large中的图片有没经过人工筛选,有噪点以及损坏图片,从中选取数据作为训练集与验证集,small中的图片经过人工筛选,数据相对干净,从中选取数据作为测试集
- 处理每个字母文件夹
每张图片可以用一个
28 x 28
的二维数组表示,一个目录下的n张图片放到一个n x 28 x 28
的三维数组中,然后通过pickle序列化到文件中
- 选取训练集、验证集、测试集
从处理好的数据中选取训练集、验证集、测试集,选取过程中每个类别打乱顺序并合并不同类别,同时使用数组记录每个数据项对应的类别(label)
- 再次打乱顺序,并序列化到文件
针对每个数据集与label,再次打乱顺序,然后把所有数据集以及相应label包装成dict序列化到磁盘
任务作业
使用sklearn.linear_model中的LogisticRegression模型训练一个模型,主要代码:
import numpy as np
import pickle
from sklearn.linear_model import LogisticRegression
image_size = 28
train_size = 1000
data = pickle.load(open('notMNIST.pickle','rb'))
train_features = data['train_dataset'][:train_siz