1:简单单层ANN 网络实现MNIST 数据集的分类
Mnist数据集可以算是学习深度学习最常用到的了。这个数据集包含70000张手写数字图片,分别是60000张训练图片和10000张测试图片,
每个图片都是2828个像素点,数据集/会把一张图片的数据转成一个2828=784的一维向量存储起来。
里面的图片数据如下所示,每张图是0-9的手写数字黑底白字的图片,存储时,黑色用0表示,白色用0-1的浮点数表示。
每张图片是一个28*28像素点的0 ~ 9的灰质手写数字图片,黑底白字,图像像素值为0 ~ 255,越大该点越白。
2:利用CSV 进行图片的读取
每个图片都是2828个像素点,数据集/会把一张图片的数据转成一个2828=784的一维向量存储起来。里面的图片数据如下所示,每张图是0-9的手写数字黑底白字的图片,存储时,黑色用0表示,白色用0-1的浮点数表示。
import pandas as pd
import torch
from torch.utils.data import DataLoader, TensorDataset
from torch import nn, optim
dir = 'E:/MNIST_CSV/'
# 读取数据
train_data = pd.read_csv(dir+'mnist_train.csv')
y_train = train_data.iloc[:, 0] # 第一列是标签
X_train = train_data.iloc[:, 1:] # 其余列是像素值
# 转换为张量
X_train = torch.tensor(X_train.values, dtype=torch.float32)
y_train = torch.tensor(y_train.values, dtype=torch.long)
# 创建 DataLoader
train_dataset = TensorDataset(X_train, y_train