深度学习
一 初识Torch
1基础介绍
PyTorch是一个基于Python的深度学习框架,最初由Facebook开发,广泛用于计算机视觉、自然语言处理、语音识别等领域。用张量(tensor)来表示数据,可以在GPU上加速,处理大规模数据集。提供了诸如自动微分、自动求导等功能。
cuDNN(CUDA Deep Neural Network library)和 CUDA(Compute Unified Device Architecture)密切相关,它们共同构成了高性能 GPU计算的基础
CUDA(Compute Unified Device Architecture),统一计算设备架构,是由 NVIDIA 提供的并行计算平台和编程模型。它允许开发者利用 NVIDIA GPU 的强大计算能力进行通用计算,包括科学计算、机器学习、图像处理和视频处理等。CUDA提供了GPU并行计算的底层基础,使GPU能够解决复杂的计算问题。
cuDNN是基于CUDA的深度神经网络加速库,提供了针对深度学习常见操作(如卷积、池化、归一化、激活函数等)的高度优化实现。它为卷积神经网络等深度学习模型的训练和推理提供了性能优化,被集成在主流的深度学习框架中简单易用。它依赖于CUDA提供的基础计算能力,通过调用CUDA协同来优化和加速深度学习操作。
2 安装
windows+r输入cmd打开命令控制台:
输入nvidia-smi查看GPU驱动程序版本:
CUDA版本号<=GPU驱动程序版本
安装PyTorch:Previous PyTorch Versions | PyTorch中找到适合的PyTorch版本
在Anaconda prompt中输入:conda env list 查看虚拟环境
创建名为torch的虚拟环境:conda create -n torch Python=3.9
激活该虚拟环境:conda activate torch
安装:conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
推荐使用1.13.1版本,比较稳定,但一些新的特性不兼容
如果运行的时候提示numpy版本不对,要先卸载当前numpy版本,再下载新的numpy库
查看当前numpy版本:pip show numpy
卸载numpy:pip unstall numpy
安装numpy:pip install numpy==1.21.2
二 Tensor概述
PyTorch会将数据封装成张量(Tensor)进行计算,所谓张量就是元素为相同类型的多维矩阵。张量可以在 GPU 上加速运行。
1 概念
张量是一个扩展了标量、向量、矩阵的更高维度的数组,张量的维度决定了它的形状。
标量是0阶张量,单一的数值,只有大小没有方向(温度)
向量是1阶张量,一维数组,具有大小和方向(加速度)
2维矩阵是2阶张量,二维数组,可以进行线性变换
更高维度的张量可以表示图像、视频数据等复杂结构
2 特点
动态计算图:即时创建
GPU支持:to("cuda")
自动微分:通过autograd可以自动计算张量运算的梯度
3 数据类型
浮点:float 16,32,64
整数:int 8,16,32,64,uint8(8位无符号整数)
布尔值:True或False
对数据的精度和速度要求不同导致对数据类型的需求不同,精度越高效果往往越好硬件开销也越大。
三 Tensor的创建
1基本创建方式
1.torch.tensor
根据指定的数据创建张量
import torch
import numpy as np
print(torch.__version__)
#一阶张量
def cerate_tensor():
t1=torch.tensor(7)#创建一个一阶张量
print(t1.shape)#形状
print(t1.dtype)#它的类型(它指t1中的数据的类型)
print(type(t1))
#
def cerate_tensor2():
data=np.array([10,20,30,40])
t1=torch.tensor(data)
print(t1.shape)#形状
print(t1.dtype)#它的类型(它指t1中的数据的类型)
print(type(t1))
#列表张量
def cerate_tensor3():
data=np.array[10,20,30,