再次尝试运行手写数字识别程序 mnist

 一,搭建老版本torch的环境

首先我的环境是

 

环境,win10,64位,Anaconda4.10.3,Cuda 9.2.148,cudnn应该为v7.4.2.24

python 3.7

搭建基于pytorch的环境。

安装pytorch:

Previous PyTorch Versions | PyTorch

根据我cuda9.2版本找到对应的命令。Anaconda Prompt安装:

(python37) D:\anaconda\envs\python37>pip install torch==1.5.1+cu92 torchvision==0.6.1+cu92 -f https://download.pytorch.org/whl/torch_stable.html
Looking in links: https://download.pytorch.org/whl/torch_stable.html
Collecting torch==1.5.1+cu92
  Downloading https://download.pytorch.org/whl/cu92/torch-1.5.1%2Bcu92-cp37-cp37m-win_amd64.whl (694.1 MB)
     |████████████████████████████████| 694.1 MB 18 kB/s
Collecting torchvision==0.6.1+cu92
  Downloading https://download.pytorch.org/whl/cu92/torchvision-0.6.1%2Bcu92-cp37-cp37m-win_amd64.whl (1.3 MB)
     |████████████████████████████████| 1.3 MB 384 kB/s
Requirement already satisfied: future in d:\anaconda\envs\python37\lib\site-packages (from torch==1.5.1+cu92) (0.18.2)
Requirement already satisfied: numpy in d:\anaconda\envs\python37\lib\site-packages (from torch==1.5.1+cu92) (1.21.2)
Requirement already satisfied: pillow>=4.1.1 in d:\anaconda\envs\python37\lib\site-packages (from torchvision==0.6.1+cu92) (8.4.0)
Installing collected packages: torch, torchvision
Successfully installed torch-1.5.1+cu92 torchvision-0.6.1+cu92

(python37) D:\anaconda\envs\python37>conda list torch
# packages in environment at D:\anaconda\envs\python37:
#
# Name                    Version                   Build  Channel
torch                     1.5.1+cu92               pypi_0    pypi
torchvision               0.6.1+cu92               pypi_0    pypi

(python37) D:\anaconda\envs\python37>python
Python 3.7.10 (default, Feb 26 2021, 13:06:18) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>>

测试pytorch的link:以上程序中有测试的函数。

PyTorch入门笔记 - 知乎

中间因为安装错误的pytorch版本,测试时有报错如下:

>>> # 使用GPU设备
>>> device = torch.device('cuda')
>>> # 将ab搬到GPU
>>> a = a.to(device)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\anaconda\envs\python37\lib\site-packages\torch\cuda\__init__.py", line 166, in _lazy_init
    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
>>> b = b.to(device)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\anaconda\envs\python37\lib\site-packages\torch\cuda\__init__.py", line 166, in _lazy_init
    raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled

尝试几次安装都是报错,gpu不可用。于是卸载掉之前安装的pytorch,再次查找安装方法:手残患者如何安装gpu版本的torch - 知乎

先安装驱动,再nvidia版本号,再安装对应版本的pytorch

 甚至报错:

 

最终找到了对应的版本。官网安装指令:Previous PyTorch Versions | PyTorch

划重点:安装的错误版本要完全卸载掉。需要使用pip uninstall torch卸载。之后用conda list torch查看是否有残余。然后-》python-》import torch查看是否失败。失败证明pytorch卸载成功。卸载完后用pip安装(因为多次尝试conda安装,显示失败)。

最终使用pip安装1.5.1版本的pytorch成功调用gpu,torch1.5.2+cuda9.2。

尝试使用例子,使gpu可以正常工作。

安装驱动,测试pytorch:手残患者如何安装gpu版本的torch - 知乎

准备好环境后,进行实例运行,看视频:学习pytorch,写程序。

pytorch 入门学习(目前见过最好的pytorch学习视频)_哔哩哔哩_bilibili

根据视频中的程序可以顺利运行出结果。重点是如何训练出一个好的模型。

训练几点建议:

一、选择一组表现好的参数,进行首次训练,设置一个高的训练次数。先设置为一个高的学习率,看损失是否降低,然后慢慢的降低学习率,直到选择一个好的学习率后,增加迭代次数。

二、学习率慢慢的降低,学习率不能固定。

三、然后训练过程中准确率在几个epochs之后没有明显变化,则降低学习率lr。

四、训练过程中不要使用控制变量法,即每次只改动一个参数查看效果。因为这样没有意义。

祝大家都能学习好pytorch。END

猜你喜欢

转载自blog.csdn.net/huachuchengzhang/article/details/122505539