手把手教你用Pytorch构造模型(GPU版和CPU版)

本文提供GPU版和CPU版Pytorch构建神经网络的教程,使用Fashion-MNIST数据集,涵盖数据预处理、模型定义、训练及模型保存加载。注意设备选择在模型构建中的影响。
摘要由CSDN通过智能技术生成

本文的示例代码为GPU版,如若需要CPU版代码,请自行删去代码中关于device的部分。


一个全连接神经网络就想当于是一个多层感知机,接下来我将从零开始构造一个全连接神经网络,包括:结点参数,损失函数,优化方法等。

由于大部分模型都能在传统的MNIST数据集上取得比较好的分类性能,我将使用Fashion-MNIST数据集来进行我们的实验。这个数据集一共包含10个类别,数据集大小只有几十M。

我们在导入函数时一律将数据转化为Tensor类型,transforms.ToTensor将数据转化为了torch.float32类型且位于[0.0,1.0]的tensor。

1 导入数据集

## 导入数据集
import torch 
import torchvision as tv
from torchvision import transforms
from IPython import display

display.set_matplotlib_formats('svg')

mn_train = tv.datasets.FashionMNIST(root = '~/Datasets/FashionMNIST', train=True, download=True, transform = transforms.ToTensor())
mn_test = tv.datasets.FashionMNIST(root = '~/Datasets/FashionMNIST', train=False, download=True, transform = transforms.ToTensor())

print(len(mn_train), len(mn_test))
print(mn_train[0][0].shape, mn_train[0][1])
device = torch.device('cuda')##在GPU上训练

这段代码的输出是:

60000 10000
torch.Size([1, 28, 28]) 9

从上面的输出可以看到,数据集是一张张28*28尺寸的图片,其中9是第一张图片的标签。接下来我们看看数据具体长啥样。

2 查看数据

## 绘图
%matplotlib inline
import matplotlib.pyplot as plt

labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',
                   'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']
imgs, y = [], []
for i in range(10):
    imgs.append(mn_train[i][0])
    y.append(mn_train[i][1])

labels = [labels[int(i)] for i in y]

plt.rcParams['figure.figsize'] = (12,
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值