当前位置: 首页 > article >正文

pyTorch笔记

一、pyTorch介绍

1.前言

学人工智能,少不了深度学习和神经网络,之前都是只有理论和新闻的那种大致的、模糊的印象,现在开始学习了。

构造神经网络感觉实践的对象就改变了,之前做数据系统、软件界面面对的都是字节流、结构体以及控件,现在面对的是nn(neural network ,神经网络)了。

2.神经网络实现的现成框架:

Caffe(c++实现的)采用以层为单位的抽象,优点是逻辑清晰,实现简便,但是需要手动实现梯度计算;

而Tensorflow是以计算图为基础,是静态图,先编译后计算;

pyTorch是动态计算图

3.pytorch由来:
Torch是一个用Lua语言实现的科学计算框架,它提供了大量的机器学习算法。而PyTorch是Torch的Python版本,它继承了Torch的强大功能,并且提供了更加Pythonic的接口,使得用户可以更方便地使用Python和其它Python库(如NumPy)进行开发。PyTorch的核心是一个提供了张量计算和深度神经网络的库。

它提供了大量的预定义函数和类,使得用户可以方便地定义和训练神经网络。

4.pytorch的官方git

pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU accelerationicon-default.png?t=O83Ahttps://github.com/pytorch/pytorch

二、CUDA相关问题

CUDA(Compute Unified Device Architecture)是由NVIDIA开发的用于并行计算的平台和编程模型。CUDA旨在利用NVIDIA GPU(图形处理单元)的强大计算能力来加速各种科学计算、数值模拟和深度学习任务。

「GPU并行计算」:pytorch可以纯靠CPU完成计算,但也可以通过GPU来加速计算(数个矩阵的值,cpu只能一个个顺序遍历计算,而gpu可以并行计算,虽然每个内核效率低但是胜在核多且并行)。 CUDA使GPU能够执行并行计算任务,从而大幅提高了计算性能。GPU由许多小型处理单元组成,每个处理单元都能够执行多个线程,这意味着GPU可以同时处理大量的计算任务。

GPU(显卡)与pytorch有如下对应关系,不满足则无法使用cuda加速

GPU架构--驱动--CUDA版本--pytorch版本

显卡的架构-CUDA版本对应表:

CUDA 版本支持的计算能力微架构备注
1.0[10]1.0 – 1.1Tesla
1.11.0 – 1.1+xTesla
2.01.0 – 1.1+xTesla
2.1 – 2.3.1[11][12][13][14]1.0 – 1.3Tesla
3.0 – 3.1[15][16]1.0 – 2.0Tesla, Fermi
3.2[17]1.0 – 2.1Tesla, Fermi
4.0 – 4.21.0 – 2.1+xTesla, Fermi
5.0 – 5.51.0 – 3.5Tesla, Fermi, Kepler
6.01.0 – 3.5Tesla, Fermi, Kepler
6.51.1 – 5.xTesla, Fermi, Kepler, Maxwell最后支持计算能力 1.x (Tesla) 的版本
7.0 – 7.52.0 – 5.xFermi, Kepler, Maxwell
8.02.0 – 6.xFermi, Kepler, Maxwell, Pascal最后支持计算能力 2.x (Fermi) 的版本;GTX 1070Ti 不受支持
9.0 – 9.23.0 – 7.2Kepler, Maxwell, Pascal, VoltaPascal GTX 1070Ti 不受 CUDA SDK 9.0 支持,但受 CUDA SDK 9.2支持
10.0 – 10.23.0 – 7.5Kepler, Maxwell, Pascal, Volta, Turing最后支持计算能力 3.x (Kepler) 的版本;CUDA SDK 10.2 是最后能用于 macOS 的官方版本,在未来的版本中 macOS 将不被支持
11.0 –3.5 - 8.6Maxwell, Pascal, Volta, Turing, Ampere

架构-显卡型号的对应表:

CUDA - 维基百科,自由的百科全书icon-default.png?t=O83Ahttps://zh.wikipedia.org/wiki/CUDACUDA版本-显卡型号对应表:

Matching CUDA arch and CUDA gencode for various NVIDIA architectures - Arnon Shimoniicon-default.png?t=O83Ahttps://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/CUDA版本-驱动对应表:

CUDA 12.6 Update 3 Release Notesicon-default.png?t=O83Ahttps://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htmlpytorch-CUDA版本对应表:
Previous PyTorch Versions | PyTorchicon-default.png?t=O83Ahttps://pytorch.org/get-started/previous-versions/

 比如其中这个,代表1.7.0的pytorch支持CUDA9.2、10.1、10.2、11.0

# CUDA 9.2
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=9.2 -c pytorch

# CUDA 10.1
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

# CUDA 10.2
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.2 -c pytorch

# CUDA 11.0
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=11.0 -c pytorch

# CPU Only
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cpuonly -c pytorch

pytorch-python版本对应表: 

torch版本支持的Python版本(示例)Cuda版本torchvision版本torchaudio版本
2.5.1>=3.9,<3.13(3.12)12.4/12.1/11.80.20.12.5.1
2.5.0>=3.9,<3.13(3.12)12.4/12.1/11.80.20.02.5.0
2.4.1>=3.8,<3.13(3.12)12.4/12.1/11.80.19.12.4.1
2.4.0>=3.8,<3.13(3.12)12.4/12.1/11.80.19.02.4.0
2.3.1>=3.8,<3.13(3.12)12.1/11.80.18.12.3.1
2.3.0>=3.8,<3.13(3.12)12.1/11.80.18.02.3.0
2.2.2>=3.8,<3.1212.1/11.80.17.22.2.2
2.2.1>=3.8,<3.1212.1/11.80.17.12.2.1
2.2.0>=3.8,<3.1212.1/11.80.17.02.2.0
2.1.2>=3.8,<3.12(3.10)12.1/11.80.16.22.1.2
2.1.1>=3.8,<3.12(3.10)12.1/11.80.16.12.1.1
2.1.0>=3.8,<3.12(3.10)12.1/11.80.16.02.1.0
2.0.0>=3.8,<3.12(3.8)11.8/11.70.15.02.0.0
1.13.1>=3.7.2,<=3.10(3.8)11.7/11.60.14.10.13.1
1.13.0>=3.7.2,<=3.10(3.8)11.7/11.60.14.00.13.0
1.12.1>=3.7,<=3.10(3.8)11.6/11.3/10.20.13.11.12.1
1.12.0>=3.7,<=3.10(3.8)11.6/11.3/10.20.13.01.12.0
1.11.0>=3.7,<=3.10(3.8)11.3/10.20.12.01.11.0
1.10.1>=3.6,<=3.9(3.8)11.3/10.20.11.20.10.1
1.10.0>=3.6,<=3.9(3.8)11.3/10.20.11.00.10.0
1.9.1>=3.6,<=3.9(3.8)11.1/10.20.10.10.9.1
1.9.0>=3.6,<=3.9(3.8)11.1/10.20.10.00.9.0
1.8.1>=3.6,<=3.9(3.8)11.1/10.20.9.10.8.1
1.8.0>=3.6,<=3.9(3.8)11.1/10.20.9.00.8.0
1.7.1>=3.6(3.6)11.0/10.2/10.10.8.20.7.2
1.7.0>=3.6(3.6)11.0/10.2/10.10.8.00.7.0

                注意:pytorch版本还与numpy等依赖库版本有对应!否则会报错(本人就因为装pyro-api 导致numpy被迫升级,然后我的pytorch就报API_ERROR的错误,当时我还以为是cuda不兼容问题,换了CUDA版本还有这个问题,才知道是依赖的numpy版本导致的)


此表原文链接:深度学习 | pytorch + torchvision + python 版本对应及环境安装_pytorch python版本-CSDN博客

等都确定好了,就可以安装CUDA了:

CUDA Installation Guide for Linuxicon-default.png?t=O83Ahttps://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#conda-installation

三、pyTorch基础功能

这里面对的都是神经网络的计算操作,

PyTorch深度学习实战(3)——使用PyTorch构建神经网络_pytorch 神经网络-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/LOVEmy134611/article/details/130875404?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%80%8E%E4%B9%88%E6%9E%84%E5%BB%BA%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-130875404.142%5Ev100%5Epc_search_result_base5&spm=1018.2226.3001.4187

 细节基础功能:

【布客】PyTorch 中文翻译icon-default.png?t=O83Ahttps://pytorch1x.apachecn.org/torch.nn — PyTorch main documentationicon-default.png?t=O83Ahttps://pytorch.org/docs/main/nn.html#containers 

四、设计神经网络

我此前对机器学习的模糊概念是“把模型放到数据集中训练,就能得到好用的东西”,随着深入,要开始对这种想法进行“祛魅”了。

神经网络的基础处理方法我们都有了,于是我们的主体工作对象变为了设计神经网络——这些需要接触一些论文,并且结合所学,如何实现自己设计的神经网络。

神经网络本质是权重,是计算后的一堆在网络结构中的数值,有了对应的网络结构,这些数值才能被用上。这些训练后得到的数值就是所谓的“模型”。

这部分……就看自己了。

​​​​​​​


参考

深度学习 | pytorch + torchvision + python 版本对应及环境安装_pytorch python版本-CSDN博客


http://www.kler.cn/a/488625.html

相关文章:

  • Win10本地部署大语言模型ChatGLM2-6B
  • 提升 PHP 编码效率的 10 个实用函数
  • 1. Doris分布式环境搭建
  • 算法(二)——一维差分、等差数列差分
  • 04、Redis深入数据结构
  • ASP.NET Core 实现微服务 - Elastic APM
  • 【网络】计算机网络的分类 局域网 (LAN) 广域网 (WAN) 城域网 (MAN)个域网(PAN)
  • 英伟达多维进击汽车业务:自动驾驶时代已至
  • 02-51单片机数码管与矩阵键盘
  • 分布式Id方案选择
  • NLP三大特征抽取器:CNN、RNN与Transformer全面解析
  • vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费
  • 跟着逻辑先生学习FPGA-第六课 无源蜂鸣器发声实验
  • 解释器模式详解
  • 力扣面试题 08.09. 括号 C语言解法 回溯递归动态规划字符串
  • 当Elasticsearch索引数据量过多时,可以采取以下措施进行优化和部署
  • Django后端相应类设计
  • Flask----前后端不分离-登录
  • mysql实现对字符列第一个汉字首字母拼音进行A-Z顺序排序,使用gbk编码
  • 计算机网络之---静态路由与动态路由
  • 图像分类、目标定位与目标检测的区别详解:定义、工作原理、应用场景
  • 车联网安全--TLS握手过程详解
  • php命名空间
  • 运维安全中心(堡垒机)
  • Ubuntu 22.04 桥接配置
  • Clisoft SOS设置Server和Project