如何对minist数据进行预处理

2023-01-03 19:16:49 浏览数 (1)

1 问题

深度学习中,数据很多,不能一次性把数据全都放到模型中进校训练,所以利用数据加载,进行顺序打乱,分批,预处理之类的操作

2 方法

使用pytorch提供的

Dataset(数据集类)(获取数据位置和个数)

train=datasets.MNIST(root='data',download=False,train=True,transform=ToTensor())

test=datasets.MNIST(root='dada',download=True,train=False,transform=ToTensor())

transform=Torensor() 把[0,255]的PIL.Image文件从 (H x W x C)形状转换为 (C x H x W) 的tensor。

DataLoader(数据加载器类):

1.传入dataset

2.batch_size 批大小

3.shuffle 数据打乱

train_loader=DataLoader(dataset=train,batch_size=128,shuffle=True)

test_loader = DataLoader(dataset=test, batch_size=128)

构造一个两到三层的神经网络,因为minsit数据不是很复杂,所以层数对数据的效果没有太大的影响。

class MyNet(nn.Module):

def __init__(self) -> None:

super().__init__()

self.flatten = nn.Flatten() # 将28*28的图像拉伸为784维向量

# 第一个全连接层Full Connection(FC)

self.fc1 = nn.Linear(in_features=784,

out_features=512)

self.fc2 = nn.Linear(in_features=512,

out_features=256)

self.fc3 = nn.Linear(in_features=256,

out_features=10)

3 结语

minist是一个28*28的图像,所以输入就是28*28=784的维度,输出为10,0-9十个数字。

经过以上的操作就是对minsit数据的一个简单处理,为接下来的深度学习做准备。

0 人点赞