pytorch配置
Jupyter notebook
1、打开 Anaconda Prompt(anaconda 3)
2、在终端输入:conda create -n torch python=3.9
3、查看环境确认创建成功
4、激活虚拟环境:activate torch
5、创建内核:conda install -n torch ipykernel
8、检查安装是否成功
方法2
Pycharm
1、选择环境
2、选择 torch 环境解释器
3、测试
独显安装参考(就是先装好CUDA和cudnn,然后剩下的和集显一样,
先创建好虚拟环境和相应的 kernel,然后安装):Pytorch环境配置(anaconda安装+独显+CUDA+cuDNN)
数据集介绍
给定数据集MNIST,Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
MNIST是一个计算机视觉数据集,它包含各种手写数字图片0,1,2,…,9
MNIST数据集包含:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。训练数据集和测试数据集都包含有一张手写的数字,和对应的标签,训练数据集的图片是 mnist.train.images ,训练数据集的标签是 mnist.train.labels;测试数据集的图片是 mnist.test.images ,训练数据集的标签是 mnist.test.labels每一张图片都是28*28像素(784个像素点),可以用点矩阵来表示每张图片
MNIST手写体识别
(一) 加包
import torch # 导入PyTorch库,用于构建和训练神经网络模型。 import torch.nn as nn # 导入PyTorch的神经网络模块,用于定义神经网络的层和模型。 import torch.nn.functional as F # 导入PyTorch的函数式接口模块,包含一些常用的非线性激活函数和损失函数。 import torch.optim as optim # 导入PyTorch的优化器模块,用于定义和实现不同的优化算法。 from torchvision import datasets, transforms # 从torchvision库中导入数据集和数据处理的功能。 import time # 导入Python的time模块,用于计时和时间相关的操作。 from matplotlib import pyplot as plt # 从matplotlib库中导入绘图功能,用于可视化数据和结果。
图1:加包
(二) 数据预处理
这段代码主要涉及数据预处理和数据加载的过程。
pipline_train
和pipline_test
是数据预处理的管道,通过transforms.Compose方法将多个预处理操作组合在一起。将transforms.RandomRotation添加到训练数据预处理中来进行随机旋转图片。使用transforms.Resize调整图片的尺寸,确保在将图片转化为Tensor格式之前调整好。将transforms.Normalize的参数从元组形式改为单个值形式,以便适应PyTorch 1.2.0版本及以上的要求。
train_set
和test_set
是使用MNIST数据集构建的训练集和测试集对象,参数说明如下:root=“./data”:数据集存储的根目录。train=True(对应train_set)或train=False(对应test_set):指定加载训练集还是测试集。download=True:如果数据集不存在,则自动从互联网上下载。transform=pipline_train(对应train_set)或transform=pipline_test(对应test_set):应用之前定义的数据预处理管道。
trainloader
和testloader
是数据加载器,用于将数据集分批次加载到模型进行训练和测试。torch.utils.data.DataLoader用于构建数据加载器。batch_size控制每个批次的样本数量。将trainloader和testloader中的shuffle参数设置为布尔值,指示是否对数据进行洗牌操作。
pipline_train = transforms.Compose([ #随机旋转图片 transforms.RandomRotation(10), #将图片尺寸resize到32x32 transforms.Resize((32, 32)), #将图片转化为Tensor格式 transforms.ToTensor(), #正则化(当模型出现过拟合的情况时,用来降低模型的复杂度) transforms.Normalize((0.1307,),(0.3081,)) ]) pipline_test = transforms.Compose([ #将图片尺寸resize到32x32 transforms.Resize((32, 32)), #将图片转化为Tensor格式 transforms.ToTensor(), # 正则化 transforms.Normalize((0.1307,),(0.3081,)) ]) #下载数据集 使用MNIST数据集构建的训练集和测试集对象 train_set = datasets.MNIST(root="./data", train=True, download=True, transform=pipline_train) test_set = datasets.MNIST(root="./data", train=False, download=True, transform=pipline_test) #加载数据集 torch.utils.data.DataLoader用于构建数据加载器 trainloader = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True) testloader = torch.utils.data.DataLoader(test_set, batch_size=32, shuffle=False)
图2:数据预处理
图3:下载数据集
机器学习 —— MNIST手写体识别(下)https://developer.aliyun.com/article/1507859?spm=a2c6h.13148508.setting.22.1b484f0e3Nvb2Q