PyTorch简介
Posted fengbingchun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyTorch简介相关的知识,希望对你有一定的参考价值。
PyTorch是一个针对深度学习,并且使用GPU和CPU来优化的tensor library(张量库)。最新发布的稳定版本为1.9,源码在https://github.com/pytorch/pytorch 。它支持在Linux、Mac和Windows上编译和运行。调用Python接口可以通过Anaconda或Pip的方式安装,调用C++接口可直接下载对应的二进制库。对PyTorch比较熟悉了,也可以通过源码直接编译。
PyTorch是基于以下两个目的而打造的python科学计算框架:
(1). 无缝替换NumPy,并且通过利用GPU的算力来实现神经网络的加速。
(2). 通过自动微分机制,让神经网络的实现变得更加容易
张量(Tensor)如同数组和矩阵一样,是一种特殊的数据结构。在PyTorch中,神经网络的输入、输出以及网络的参数等数据,都是使用张量来进行描述。
张量的使用和Numpy中的ndarrays很类似,区别在于张量可以在GPU或其它专用硬件上运行,这样可以得到更快的加速效果。
可以使用torch.nn包构建神经网络,包含各种layer的实现。torch.nn.functional中包含了多种激活函数、损失函数的实现。
可以使用torch.optim包提供的算法来优化模型,如SGD、AdaGrad、RMSProp、Adam等。
可以使用torch.autograd包提供的自动微分(即计算梯度)来自动计算神经网络中的反向传播。
通过Anaconda在Windows和Ubuntu上安装不带CUDA版的PyTorch 1.8.1,依次执行如下命令:
conda create -n pytorch1.8.1
conda activate pytorch1.8.1
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cpuonly -c pytorch
安装带CUDA 10.2版本的则执行如下命令:
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=10.2 -c pytorch
PyTorch主要模块:
(1). C10:通用tensor操作,由C++或CUDA实现。
(2). ATen:基础tensor和数学运算库,依赖C10,由C++或CUDA实现,PyTorch中几乎所有其它Python和C++接口都建立在它之上。
(3). Caffe2:一种新的轻量级、模块化和可扩展的深度学习框架,Caffe2建立在原始Caffe的基础上,依赖C10、ATen,由C++或CUDA实现。
(4). Torch:包含多维tensor的数据结构以及基于其上的多种数学运算操作。此外,它还提供了许多实用工具,如可以更有效地对tensor和任意类型进行序列化。它依赖C10、Caffe2,由C++或CUDA或Python实现。
TorchVision:源码在https://github.com/pytorch/vision,最新发布版本为0.10.0,PyTorch的计算机视觉库,支持数据集下载和load、模型架构和计算机视觉的通用图像操作,依赖C10、ATen、Torch、caffe2,由C++或CUDA或Python实现。
TorchAudio:源码在https://github.com/pytorch/audio,最新发布版本为0.9.0,PyTorch的音频库,依赖C10、ATen、Torch,由C++或Python实现。
TorchText:源码在https://github.com/pytorch/text,最新发布版本为0.10.0,PyTorch的文本处理和NLP库,依赖C10、ATen、Torch,由C++或Python实现。
以上是关于PyTorch简介的主要内容,如果未能解决你的问题,请参考以下文章
直播TTIC Ph.D:PyTorch简介 | 学术青年分享会
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段
CNN经典网络模型:ResNet简介及代码实现(PyTorch超详细注释版)
源码学习成功运行RDAA代码及踩坑记录 - Pytorch版