编程框架使用
深度学习编程框架:将深度学习算法中的基本操作封装成一系列组件,这一系列深度学习组件,即构成一套深度学习框架
pytorch概述
主要优点
简洁易懂:API设计简洁一致,基本上是tensor、autograd、nn三层封装
便于调试:采用动态图,可以进行调试
强大高效:提供了非常丰富的模型组件
pytorch和tensorflow
Tensorflow在工业界拥有完备的解决方案和用户基础
pytorch编程模型及基本用法
Numpy基础
ndarray的属性
形状操作
索引
Pytorch基础
张量是现代深度学习框架的核心数据结构之一,包括PyTorch和TensorFlow等。它类似于 NumPy中的多维数组(ndarray),在PyTorch中,几乎所有的数据都表示为张量。这包括输 入数据、模型参数、梯度等。
支持GPU加速:PyTorch能够利用GPU加速计算,而张量是在GPU上进行计算的主要数据类 型。
张量是计算图上的数据载体,用张量统一表示所有的数据,张量在计算图的节点之间传递。
张量可以看做是n维的数组,数组的维数即为张量的阶数
tensor创建
tensor与array的转换
张量的数据类型
不同数据分布对位宽的需求是不同的
不同层的数据对于位宽的需求是不一样的,每层数据都有其保持网络收敛的最低位宽要求,每层数据的位宽需求与数据分布之间存在关系
张量属性的转换
张量的数据格式
张量的切片
张量维度的压缩、扩展
原地操作
原地操作能够节省内存占用,在进行深度学习算法推理时,使用原地操作能够有效减少模型占用的内存
原地操作会覆盖原张量,如果在模型训练时使用原地操 作来更新张量梯度,则每次迭代计算所的梯度值将被覆 盖,从而破坏模型的训练过程
对于多个张量同时引用一个张量的情况,对该张量进行 原地操作会影响其他张量的操作
广播机制
对于参与计算操作的多个张量,如果张量维度不匹配,可以 使用PyTorch的广播机制对不匹配的张量维度进行扩展,最终 将这些张量均扩展为维度相同
广播条件:
- 每个张量都有至少1个维度
- 从张量末尾的维度开始对齐扩展,在对齐后的同一维度中,仅下列情况下才允许进行广播操作:1)维度尺寸相同;2)维度尺寸不同 但其中一个维度尺寸为1;3)其中一个张量没有该维度
计算图
基于Pytorch的模型推理实现
读取输入图像
构建神经网络
编程框架使用
http://example.com/2024/11/27/Notes/课程/大三(上)/智能计算系统/编程框架使用/