
PyTorch学习笔记
文章平均质量分 72
视觉萌新、
博客专家认证、人工智能领域优质创作者,曾经研究过图像增强、目标检测、细粒度分类以及域适应等计算机视觉方向,目前在研究具身智能相关的方向。
展开
-
PyTorch学习笔记:F.pad——张量填充操作
功能:对张量数据执行填充操作input:待填充的n维张量;pad:每个维度上的填充大小,输入是大小为m的元组数据;mode:填充方式,可选择4种——constantreflectreplicatecircular;constant:固定填充,填充固定的数值,数值大小由value确定;reflect:镜像填充,以矩阵边缘为对称轴,将反方向的对称元素填充到最外围;replicate:复制填充,使用输入边界的复制值填充张量;circular:循环填充,重复矩阵边界另一侧的元素;原创 2024-08-09 15:25:17 · 2044 阅读 · 0 评论 -
Pytorch学习笔记:nn.MultiheadAttention——多头注意力机制
功能:创建一个多头注意力模块,参考论文《attention is all you need》原创 2024-08-03 21:20:37 · 2674 阅读 · 0 评论 -
PyTorch学习笔记:data.BatchSampler——修改batch的封装策略
如果在训练过程中对封装的batch有额外的需求时(如Faster RCNN,在采样时图像高宽比例位于同一区间的需要被封装到一个batch里),可以通过定义一个新类实现,该类需要继承BatchSampler,主要通过修改迭代方法__iter__(self)来实现。原创 2024-08-03 21:12:59 · 888 阅读 · 0 评论 -
PyTorch学习笔记:cuda方法——查看显卡信息
PyTorch学习笔记:cuda方法——查看显卡信息原创 2024-02-21 20:05:33 · 2507 阅读 · 1 评论 -
PyTorch学习笔记:nn.GELU——GELU激活函数
PyTorch学习笔记:nn.GELU——GELU激活函数出自论文《GAUSSIAN ERROR LINEAR UNITS (GELUS)》- 相比于ReLU,GELU函数在临近原点时梯度不为零,减少了训练过程中梯度消失的问题;- 导函数比较光滑,无间断情况,容易做反向传播;- RELU计算复杂度较低,同时具有良好的性能,常用于大规模训练的任务,例如BERT、GPT等等。原创 2024-02-18 20:24:46 · 9639 阅读 · 0 评论 -
Pytorch学习笔记:LambdaLR——自定义学习率变化器
Pytorch学习笔记:LambdaLR——自定义学习率变化器将每个参数的学习率设置为初始的`lr`乘以一个权重系数`factor`,用于调整学习率大小,其中权重系数`factor`由函数`lr_lambda`得到,这里可以为每个层设置不同的学习率调整策略。原创 2024-02-04 22:32:31 · 2028 阅读 · 0 评论 -
Pytorch学习笔记:hook操作——提取特征、梯度等信息
Pytorch学习笔记:hook操作——提取特征、梯度等信息 PyTorch在每一次运算结束后都会释放中间变量,从而节省内存空间,例如释放模型中间得到的特征数据、反向传播过程中的梯度等等,因此就有了hook方法,可以操作中间变量,如保存梯度、保存中间特征数据,也可以对中间变量做修改,如增大梯度、限制梯度范围等等,核心在于hook函数的定义。原创 2023-08-09 09:20:53 · 1575 阅读 · 0 评论 -
PyTorch学习笔记:nn.CrossEntropyLoss——交叉熵损失
PyTorch学习笔记:nn.CrossEntropyLoss——交叉熵损失原创 2023-02-10 17:49:10 · 6459 阅读 · 1 评论 -
PyTorch学习笔记:nn.TripletMarginLoss——三元组损失
PyTorch学习笔记:nn.TripletMarginLoss——三元组损失原创 2023-02-10 17:37:41 · 5022 阅读 · 0 评论 -
PyTorch学习笔记:nn.KLDivLoss——KL散度损失
PyTorch学习笔记:nn.KLDivLoss——KL散度损失原创 2023-02-10 17:35:38 · 23295 阅读 · 5 评论 -
PyTorch学习笔记:nn.MarginRankingLoss——排序损失
PyTorch学习笔记:nn.MarginRankingLoss——排序损失原创 2023-02-10 17:34:28 · 6982 阅读 · 0 评论 -
PyTorch学习笔记:model.train()与model.eval()——切换训练模式与测试模式
PyTorch学习笔记:model.train()与model.eval()——切换训练模式与测试模式原创 2023-02-10 17:33:14 · 1241 阅读 · 0 评论 -
PyTorch学习笔记:data.WeightedRandomSampler——数据权重概率采样
PyTorch学习笔记:data.WeightedRandomSampler——数据权重概率采样原创 2023-02-10 17:28:56 · 1812 阅读 · 0 评论 -
PyTorch学习笔记:data.RandomSampler——数据随机采样
PyTorch学习笔记:data.RandomSampler——数据随机采样原创 2023-02-10 17:27:30 · 11410 阅读 · 0 评论 -
PyTorch学习笔记:nn.Dropout——随机丢弃层
PyTorch学习笔记:nn.Dropout——随机丢弃层原创 2023-02-10 17:24:46 · 16906 阅读 · 0 评论 -
PyTorch学习笔记:F.normalize——数组归一化运算
PyTorch学习笔记:F.normalize——数组归一化运算原创 2023-02-10 17:21:17 · 12056 阅读 · 2 评论 -
PyTorch学习笔记:nn.PReLU——PReLU激活函数
PyTorch学习笔记:nn.PReLU——PReLU激活函数原创 2023-02-10 17:20:32 · 10828 阅读 · 0 评论 -
PyTorch学习笔记:nn.Tanh——Tanh激活函数
PyTorch学习笔记:nn.Tanh——Tanh激活函数原创 2023-02-10 17:18:53 · 21908 阅读 · 0 评论 -
PyTorch学习笔记:nn.Linear——线性回归层
PyTorch学习笔记:nn.Linear——线性回归层原创 2023-02-10 17:13:53 · 2233 阅读 · 0 评论 -
PyTorch学习笔记:nn.Sigmoid——Sigmoid激活函数
PyTorch学习笔记:nn.Sigmoid——Sigmoid激活函数原创 2023-02-10 17:10:02 · 9514 阅读 · 0 评论 -
PyTorch学习笔记:nn.ReLU——ReLU激活函数
PyTorch学习笔记:nn.ReLU——ReLU激活函数原创 2023-02-10 17:07:46 · 10524 阅读 · 1 评论 -
PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数
PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数原创 2023-02-10 17:06:37 · 23703 阅读 · 2 评论 -
PyTorch学习笔记:nn.SmoothL1Loss——平滑L1损失
PyTorch学习笔记:nn.SmoothL1Loss——平滑L1损失原创 2023-02-10 17:06:00 · 8589 阅读 · 2 评论 -
PyTorch学习笔记:nn.MSELoss——MSE损失
PyTorch学习笔记:nn.MSELoss——MSE损失原创 2023-02-10 17:05:15 · 5612 阅读 · 0 评论 -
PyTorch学习笔记:nn.L1Loss——L1损失
PyTorch学习笔记:nn.L1Loss——L1损失原创 2023-02-10 17:03:48 · 9169 阅读 · 0 评论 -
PyTorch学习笔记:torch.ge、torch.gt、torch.le、torch.lt、torch.ne、torch.eq
PyTorch学习笔记:torch.ge、torch.gt、torch.le、torch.lt、torch.ne、torch.eq,逐元素对比原创 2023-02-10 16:59:39 · 3123 阅读 · 0 评论 -
torch.gather——沿特定维度收集数值
PyTorch学习笔记:torch.gather——沿特定维度收集数值torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor功能:从输入的数组中,沿指定的dim维度,利用索引变量index,将数据索引出来,并且堆叠成一个数组。直观可能不好理解,具体可以见代码案例。输入:input:输入的数组dim:指定的维度index:索引变量,数据类型需是长整型(int64)注意:input和index具有相同原创 2021-11-07 15:48:16 · 1062 阅读 · 3 评论 -
PyTorch:torch.nonzero——非零元素的定位
PyTorch学习笔记:torch.nonzero——非零元素的定位torch.nonzero(input, *, out=None, as_tuple=False) → LongTensor or tuple of LongTensors功能:用于输出数组的非零值的索引,即用来定位数组中非零的元素输入:input:输入的数组as_tuple:如果设为False,则返回一个二维张量,其中每一行都是非零值的索引,如果输入的数组有n维,则输出的张量维度大小为z×n,其中z为input非零元素的总数原创 2021-10-04 18:33:40 · 19193 阅读 · 1 评论 -
nn.AdaptiveAvgPool2d——二维自适应平均池化运算
PyTorch学习笔记:nn.AdaptiveAvgPool2d——二维自适应平均池化运算torch.nn.AdaptiveAvgPool2d(output_size)功能:该函数与二维平均池化运算类似,区别主要体现在自适应上,对于任何输入大小,输出大小均为指定的H×W大小。输入:output_size:指定的输出大小,可以是元组(H,W),或者是单个的数,如果是单个的数,则表示输出的高和宽尺寸一样,output_size大小可以大于输入的图片尺寸大小。代码案例一般用法import to原创 2021-09-28 21:43:18 · 18393 阅读 · 0 评论 -
nn.AvgPool2d——二维平均池化操作
PyTorch学习笔记:nn.AvgPool2d——二维平均池化操作torch.nn.AvgPool2d( kernel_size , stride=None , padding=0 , ceil_mode=False , count_include_pad=True , divisor_override=None )功能:在由多个平面组成的输入信号上应用2D平均池化操作,具体计算公式如下:out(Ni,Ci,h,w)=1kH∗kW∑m=0kH−1∑m=0kH−1input(Ni,Ci,stride原创 2021-09-28 21:22:09 · 40277 阅读 · 4 评论 -
torch.div()——数组的‘点除‘运算
torch.div()——数组的’点除’运算torch.div(input, other, *, rounding_mode=None, out=None) → Tensor功能:将数组input与数组other对应元素做除法,具体计算公式如下:outi=inputiotheriout_i=\frac{input_i}{other_i}outi=otheriinputi输入:input:元素用于被除数的数组other:元素用于除数的数组或者数rounding_mode:输入为字原创 2021-09-27 21:28:51 · 13130 阅读 · 2 评论 -
nn.BatchNorm2d——批量标准化操作解读
nn.BatchNorm2d——批量标准化操作torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)功能:对输入的四维数组进行批量标准化处理,具体计算公式如下:y=x−mean[x]Var[x]+eps∗gamma+betay=\frac{x-mean[x]}{\sqrt{Var[x]+eps}}*gamma原创 2021-09-27 14:25:12 · 8914 阅读 · 0 评论 -
torch.transpose与tensor.permute——数组的转置
torch.transpose与tensor.permute——数组的转置torch.transpose——交换两个维度代码案例tensor.permute——交换多个维度代码案例区别扩展官方文档torch.transpose——交换两个维度torch.transpose(input, dim0, dim1) → Tensor功能:将输入数组的dim0维度和dim1维度交换输入:input:需要做维度交换的数组dim0、dim1:交换的维度注意:返回的张量数组与原来的数组共享底层存储原创 2021-09-24 11:25:30 · 5062 阅读 · 1 评论 -
Pytorch学习笔记:torch.repeat_interleave()与tensor.repeat()——数组的重复(复制)
torch.repeat_interleave()与 tensor.repeat()——数组的重复torch.repeat_interleave()torch.repeat_interleave(input, repeats, dim=None) → Tensor功能:沿着指定的维度重复数组的元素输入:input:指定的数组repeats:每个元素重复的次数,可以是张量或者是数组dim:指定的维度注意:如果不指定dim,则默认将输入数组扁平化(维数是1,因此这时repeats必须原创 2021-09-20 16:22:34 · 7902 阅读 · 0 评论 -
torch.max()——数组的最大值
torch.max——数组的最大值torch.max()——数组的最大值形式Ⅰ形式Ⅱ代码案例扩展官方文档torch.max()——数组的最大值torch.max()有两种形式形式Ⅰtorch.max(input) → Tensor功能:输出数组的最大值注意:只有一个输入,只需要输入一个数组该方式也可以通过a.max()实现,后者是求数组a的最大值形式Ⅱtorch.max(input, dim, keepdim=False, *, out=None) -> (Tensor, L原创 2021-09-19 19:12:59 · 11130 阅读 · 1 评论 -
nn.Conv2d——二维卷积运算解读
PyTorch学习笔记:nn.Conv2d——二维卷积运算解读nn.Conv2d——二维卷积运算代码案例一般用法输出卷积运算的参数填充方式零填充镜像填充复制填充循环填充官方文档nn.Conv2d——二维卷积运算torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtyp原创 2021-09-19 15:48:12 · 16954 阅读 · 0 评论 -
numpy与tensor数据类型互换
numpy与tensor数据类型互换numpy转换为tensortorch.from_numpy(ndarray) → Tensortensor转换为numpyTensor.numpy() → numpy.ndarray注意:无论是numpy转换为tensor还是tensor转换为numpy,两者的变换后得到的数据与变换前的数据共享底层存储,即改变一方的数据,另一方的数据也会相应改变。代码案例numpy转换为tensorimport torchimport numpy as np原创 2021-09-18 22:25:08 · 3827 阅读 · 0 评论 -
torch.eq与torch.ne——判断数组中的数值是否相等
torch.eq与torch.ne——数组的判断torch.eq()——判断元素是否相等案例代码torch.ne()——判断元素是否不相等案例代码扩展代码案例官方文档torch.eq()——判断元素是否相等torch.eq(input, other, *, out=None) → Tensor功能:判断两个数组的元素是否相等。输出:返回与输入具有相同形状的张量数组,若对应位置上的元素相等,则该位置上的元素是True,否则是False。输入:input:要比较的张量数组other:判断标准(原创 2021-09-18 18:54:20 · 7192 阅读 · 0 评论 -
torch.chunk()——数组的拆分
torch.chunk()——数组的拆分torch.chunk(input, chunks, dim=0) → List of Tensors功能:将数组拆分为特定数量的块输入:input:待拆分的数组chunks:拆分的块数,指定为几,就拆成几dim:拆分的维度,默认沿第1维度拆分注意:函数最后返回的是元组类型,包含拆分后的数组如果输入的数组在指定的维度下不能整除,则拆分得到的最后一块数组的dim维度大小将小于前面所有的数组dim维度大小chunks有最大值限制,如果原创 2021-09-17 16:53:56 · 6698 阅读 · 0 评论 -
torch.clamp()——数组的夹紧
torch.clamp()——数组的夹紧torch.clamp(input, min=None, max=None, *, out=None) → Tensor功能:将数组的所有元素夹紧到范围[min,max]内,相当于经过了函数f(x)={min,ifx≤minx,ifmin<x<maxmax,ifx≥maxf(x)=\left \{ \begin{matrix} min,\quad &if\quad x≤min \\ x,&if\quad min<x<m原创 2021-09-16 21:43:28 · 1119 阅读 · 0 评论