Mnist数据集和Usps数据集
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 = size(img, size)
return 1 - np.array(img, "float32")/scale
3.2 设置路径并将处理后的数据进⾏记录
resizedimport 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. 如果懒得处理,可以直接⽤处理过的,附带连接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论