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 accelerationhttps://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.1 Tesla
1.1 1.0 -- 1.1+x Tesla
2.0 1.0 -- 1.1+x Tesla
2.1 -- 2.3.1[11][12][13][14] 1.0 -- 1.3 Tesla
3.0 -- 3.1[15][16] 1.0 -- 2.0 Tesla, Fermi
3.2[17] 1.0 -- 2.1 Tesla, Fermi
4.0 -- 4.2 1.0 -- 2.1+x Tesla, Fermi
5.0 -- 5.5 1.0 -- 3.5 Tesla, Fermi, Kepler
6.0 1.0 -- 3.5 Tesla, Fermi, Kepler
6.5 1.1 -- 5.x Tesla, Fermi, Kepler, Maxwell 最后支持计算能力 1.x (Tesla) 的版本
7.0 -- 7.5 2.0 -- 5.x Fermi, Kepler, Maxwell
8.0 2.0 -- 6.x Fermi, Kepler, Maxwell, Pascal 最后支持计算能力 2.x (Fermi) 的版本;GTX 1070Ti 不受支持
9.0 -- 9.2 3.0 -- 7.2 Kepler, Maxwell, Pascal, Volta Pascal GTX 1070Ti 不受 CUDA SDK 9.0 支持,但受 CUDA SDK 9.2支持
10.0 -- 10.2 3.0 -- 7.5 Kepler, Maxwell, Pascal, Volta, Turing 最后支持计算能力 3.x (Kepler) 的版本;CUDA SDK 10.2 是最后能用于 macOS 的官方版本,在未来的版本中 macOS 将不被支持
11.0 -- 3.5 - 8.6 Maxwell, Pascal, Volta, Turing, Ampere

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

CUDA - 维基百科,自由的百科全书https://zh.wikipedia.org/wiki/CUDACUDA版本-显卡型号对应表:

Matching CUDA arch and CUDA gencode for various NVIDIA architectures - Arnon Shimonihttps://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/CUDA版本-驱动对应表:

CUDA 12.6 Update 3 Release Noteshttps://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htmlpytorch-CUDA版本 对应表:
Previous PyTorch Versions | PyTorchhttps://pytorch.org/get-started/previous-versions/

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

bash 复制代码
# 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.8 | 0.20.1 | 2.5.1 |
| 2.5.0 | >=3.9,<3.13(3.12) | 12.4/12.1/11.8 | 0.20.0 | 2.5.0 |
| 2.4.1 | >=3.8,<3.13(3.12) | 12.4/12.1/11.8 | 0.19.1 | 2.4.1 |
| 2.4.0 | >=3.8,<3.13(3.12) | 12.4/12.1/11.8 | 0.19.0 | 2.4.0 |
| 2.3.1 | >=3.8,<3.13(3.12) | 12.1/11.8 | 0.18.1 | 2.3.1 |
| 2.3.0 | >=3.8,<3.13(3.12) | 12.1/11.8 | 0.18.0 | 2.3.0 |
| 2.2.2 | >=3.8,<3.12 | 12.1/11.8 | 0.17.2 | 2.2.2 |
| 2.2.1 | >=3.8,<3.12 | 12.1/11.8 | 0.17.1 | 2.2.1 |
| 2.2.0 | >=3.8,<3.12 | 12.1/11.8 | 0.17.0 | 2.2.0 |
| 2.1.2 | >=3.8,<3.12(3.10) | 12.1/11.8 | 0.16.2 | 2.1.2 |
| 2.1.1 | >=3.8,<3.12(3.10) | 12.1/11.8 | 0.16.1 | 2.1.1 |
| 2.1.0 | >=3.8,<3.12(3.10) | 12.1/11.8 | 0.16.0 | 2.1.0 |
| 2.0.0 | >=3.8,<3.12(3.8) | 11.8/11.7 | 0.15.0 | 2.0.0 |
| 1.13.1 | >=3.7.2,<=3.10(3.8) | 11.7/11.6 | 0.14.1 | 0.13.1 |
| 1.13.0 | >=3.7.2,<=3.10(3.8) | 11.7/11.6 | 0.14.0 | 0.13.0 |
| 1.12.1 | >=3.7,<=3.10(3.8) | 11.6/11.3/10.2 | 0.13.1 | 1.12.1 |
| 1.12.0 | >=3.7,<=3.10(3.8) | 11.6/11.3/10.2 | 0.13.0 | 1.12.0 |
| 1.11.0 | >=3.7,<=3.10(3.8) | 11.3/10.2 | 0.12.0 | 1.11.0 |
| 1.10.1 | >=3.6,<=3.9(3.8) | 11.3/10.2 | 0.11.2 | 0.10.1 |
| 1.10.0 | >=3.6,<=3.9(3.8) | 11.3/10.2 | 0.11.0 | 0.10.0 |
| 1.9.1 | >=3.6,<=3.9(3.8) | 11.1/10.2 | 0.10.1 | 0.9.1 |
| 1.9.0 | >=3.6,<=3.9(3.8) | 11.1/10.2 | 0.10.0 | 0.9.0 |
| 1.8.1 | >=3.6,<=3.9(3.8) | 11.1/10.2 | 0.9.1 | 0.8.1 |
| 1.8.0 | >=3.6,<=3.9(3.8) | 11.1/10.2 | 0.9.0 | 0.8.0 |
| 1.7.1 | >=3.6(3.6) | 11.0/10.2/10.1 | 0.8.2 | 0.7.2 |
| 1.7.0 | >=3.6(3.6) | 11.0/10.2/10.1 | 0.8.0 | 0.7.0 |

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

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

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

CUDA Installation Guide for Linuxhttps://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#conda-installation

三、pyTorch基础功能

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

PyTorch深度学习实战(3)------使用PyTorch构建神经网络_pytorch 神经网络-CSDN博客https://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 中文翻译https://pytorch1x.apachecn.org/torch.nn --- PyTorch main documentationhttps://pytorch.org/docs/main/nn.html#containers

四、设计神经网络

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

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

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

这部分......就看自己了。

​​​​​​​


参考

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

相关推荐
睡觉狂魔er8 分钟前
自动驾驶控制与规划——Project 6: A* Route Planning
人工智能·自动驾驶·规划
金书世界11 分钟前
自动驾驶ADAS算法--测试工程环境搭建
人工智能·机器学习·自动驾驶
程序员正茂16 分钟前
Win10本地部署大语言模型ChatGLM2-6B
人工智能·python·chatglm·大语言模型
笔写落去34 分钟前
统计学习方法(第二版) 第五章
人工智能·深度学习·机器学习
小禾家的1 小时前
.NET AI 开发人员库 --AI Dev Gallery
人工智能
19岁开始学习1 小时前
Elasticsearch复习笔记
笔记·elasticsearch·jenkins
鲁子狄1 小时前
[笔记] Jenkins 安装与配置全攻略:Ubuntu 从零开始搭建持续集成环境
java·linux·运维·笔记·ubuntu·ci/cd·jenkins
魔珐科技1 小时前
AI赋能跨境电商:魔珐科技3D数字人破解出海痛点
人工智能·aigc·跨境电商·ai数字人·3d数字人·电商数字人
湫ccc1 小时前
《Opencv》信用卡信息识别项目
人工智能·python·opencv·计算机视觉
人工智能研究所1 小时前
Netron可视化深度学习的模型框架,大大降低了大模型的学习门槛
人工智能·深度学习·netron 模型可视化