Pytorch实现mnist手写数字识别

>- ** 本文为[365天深度学习训练营]中的学习记录博客**
>- ** 原作者:[K同学啊]**

我的环境:

  • 语言环境:Python3.8
  • 编译器:Jupyter Lab
  • 深度学习环境:
    • torch==1.12.1+cu113
    • torchvision==0.13.1+cu113

一、 前期准备

1. 设置GPU

如果设备上支持GPU就使用GPU,否则使用CPU

import torch
import torch.nn as nn
import matplotlib.pyplot as plt
import torchvision

# 设置硬件设备,如果有GPU则使用,没有则使用cpu
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
device
device(type='cuda') # 使用的是GPU

2. 导入数据

使用dataset下载MNIST数据集,并划分好训练集与测试集

使用dataloader加载数据,并设置好基本的batch_size

torchvision.datasets.MNIST详解

torchvision.datasets是Pytorch自带的一个数据库,我们可以通过代码在线下载数据,这里使用的是torchvision.datasets中的MNIST数据集。

函数原型:

torchvision.datasets.MNIST(root, train=True, transform=None, target_transform=None, download=False)

参数说明:

  • root (string) :数据地址
  • train (string) :True-训练集,False-测试集
  • download (bool,optional) : 如果为True,从互联网上下载数据集,并把数据集放在root目录下。
  • transform (callable, optional ):这里的参数选择一个你想要的数据转化函数,直接完成数据转化
  • target_transform (callable,optional) :接受目标并对其进行转换的函数/转换。

train_ds = torchvision.datasets.MNIST('data', 
                                      train=True, 
                                      transform=torchvision.transforms.ToTensor(), # 将数据类型转化为Tensor
                                      download=True)

test_ds  = torchvision.datasets.MNIST('data', 
                                      train=False, 
                                      transform=torchvision.transforms.ToTensor(), # 将数据类型转化为Tensor
                                      download=True)

torch.utils.data.DataLoader详解

torch.utils.data.DataLoader是Pytorch自带的一个数据加载器,结合了数据集和取样器,并且可以提供多个线程处理数据集。

函数原型:

torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=None, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None, generator=None, *, prefetch_factor=2, persistent_workers=False, pin_memory_device='')

参数说明:

  • dataset (string) :加载的数据集

你可能感兴趣的:(python)