Mnist数据集和Usps数据集
原创
©著作权归作者所有:来自51CTO博客作者l8947943s的原创作品,请联系作者获取转载授权,否则将追究法律责任
1. 最近做实验,用到迁移的数据,无奈数据量太少,于是使用公共数据集Mnist和Usps数据集进行对比实验。
数据介绍:
Mnist数据集:每张图是28 * 28的大小,同时一共70000万张图片,一共是10类手写数字
Usps数据集:每张图是16 *16 的大小,一共20000万张图片,一共是10类手写数字
2. 原版的mnist数据集很好找到,我就不赘述了,直接上传文件,可以使用
读取使用方式:
import scipy.io
from sklearn import preprocessing
# 读取所给的mnist数据集
minst_data = scipy.io.loadmat('../../../PUCode/datasets/mldata/mnist-original.mat')
feature = minst_data['data'].T
label = minst_data['label'].T
print(minst_data.shape, minst_label.shape) # (70000, 784) (70000, 1)
# 进行归一化处理
min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(minst_data)
# 保存成mat文件
data = {'feas':x_minmax, 'label':minst_label}
with open('../Mnist.mat', 'wb') as file:
scipy.io.savemat(file, data)
输出的数据大小为 (70000, 784), 标签大小为: (70000, 1)
3. 对Usps数据进行处理
下载对应的文件,并注意存放的目录结构即可,另外还需要opencv的包进行每张图的处理,并将数据与Mnist数据进行shape保持。
3.1 对图大小进行处理
def resize_and_scale(img, size, scale):
img = cv2.resize(img, size)
return 1 - np.array(img, "float32")/scale
3.2 设置路径并将处理后的数据进行记录
import os
import cv2
path_to_data = "./USPSdata/Numerals/"
img_list = os.listdir(path_to_data)
sz = (28,28)
validation_usps = []
validation_usps_label = []
for i in range(10):
label_data = path_to_data + str(i) + '/'
img_list = os.listdir(label_data)
for name in img_list:
if '.png' in name:
img = cv2.imread(label_data+name)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
resized_img = resize_and_scale(img, sz, 255)
validation_usps.append(resized_img.flatten())
validation_usps_label.append(i)
3.3 保存数据
data = np.array(validation_usps)
label = np.array(validation_usps_label).reshape(-1, 1)
with open('../Usps.mat', 'wb') as file:
scipy.io.savemat(file, {'feas':data, 'label':label})
4. 如果懒得处理,可以直接用处理过的,附带连接
Mnist_and_usps.rar_MNIST_USPS-其它文档类资源