配置pytorch环境和手写MNIST识别

本文为:365天深度学习训练营中的学习内容
原作者为:K同学啊

P1 手写MNIST识别


提示:以下是本篇文章正文内容,下面案例可供参考

1.在anaconda安装pytorch

我参考的教程在这里
[https://zhuanlan.zhihu.com/p/672526561]()
[https://blog.csdn.net/Maaa_25/article/details/118723993]()
[https://blog.csdn.net/weixin_44261686/article/details/104241503]()

我的环境

python版本:3.11.5
pytorch版本:2.1.2
cuda版本:12.4
记录一下遇到的比较有趣的问题:
  • 一开始我没有比对cuda和pytorch的版本,所以在检查是否安装成功的时候
    torch.cuda.is_available() 这一句得到的结果不仅是一个false,他甚至告诉我我的cuda版本too old了!! 感觉程序都看不下去了,一定要对应好cuda python 和pytorch

  • 如果你在安装于base的jupyter notebook里面得到了这样的结果"No module named 'torchNo module named 'torch"请在base和pytorch的环境下分别输入这条命令python -m ipykernel install --name pytorch 如果pytorch输入这条命令报错,就先执行这两条指令conda install ipython conda install jupyter后再执行上面那一条就好啦.

    这样在jupyter里就有这个啦

    这里是成功的证据!


2.手写数字识别

  • 代码

      # 设置GPU
      # 导入pytorch
      import torch
      # 导入pytorch中的神经网络模块nn , as关键字用于起别名,用nn代替torch.nn
      import torch.nn as nn
      # 导入matplotlib中的pylot模块 matplotlib是常用的数据可视化的库
      import matplotlib.pyplot as plt
      # 处理计算机视觉任务的库
      import torchvision
      # CUAD是英伟达为开发者提供的能使用GPU来进行计算运行程序的模型
      # torch.cuad.is_available()是为了检查当前的计算机系统是否支持cuda也就是gpu运算
      # torch.device()用来表示计算机中设备的类,指定代码是在CPU还是gpu运行
      # "cuda"则是在gpu "cpu"则是在CPU运行 "cuda:0"则是制定具体的gpu 
      # "cuda" if torch.cuda.is_available() else "cpu"这一句则是说让设备根据系统来选择cpu还是gpu
      device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
      device
    
     # 训练集 第一个参数是存储地址 默认是root train的类型是bool true是训练集 false是测试集 
     # transform 就是把数据转化成其他形式 这里面是转化成Tensor形式 torchvision.transforms.ToTensor() 这句话的意思就是把数据转化成Tensor的形式
     # download 的类型也是bool型 true是下载 false是不下载
     train_ds = torchvision.datasets.MNIST("data",train=True,transform=torchvision.transforms.ToTensor(),download=True)
     test_ds = torchvision.datasets.MNIST("data",train=False,transform=torchvision.transforms.ToTensor(),download=True)
    
    # 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:字符串类型,是加载的数据集的名字
    # batch:数据集太大,要把他分成多少批处理就是batch
    # batch_size:int类型,数据集划分批次一批是多少个就是batchsize,他的默认值是1
    # epoch:将一个数据集中所有的样本数据都过一遍(只是过一遍)的训练过程
    # shuffle:是bool类型如果是true的话,每过一次数据集都要重新排列数据
    # sampler:指定数据采样器,也就是指定从数据集中抽取杨版本的策略 值可以是任何可迭代对象(iterable),和shuffle冲突,如果指定会覆盖shuffle的选择
    # batch_sampler:自定义批次采样器与 batch_size、shuffle、sampler 和 drop_last 互斥
    # 
    
    batch_size = 32
    
    train_dl = torch.utils.data.DataLoader(train_ds,batch_size = batch_size,shuffle = True
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值