
PyTorch框架
文章平均质量分 77
PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究团队开发并维护。它提供了一个灵活而高效的工具集,用于构建和训练各种类型的神经网络模型。
胡乱儿起个名
工作记录.......
展开
-
转置卷积的实现过程
这里指的反卷积,也叫转置卷积,它并不是正向卷积的完全逆过程,反卷积是一种特殊的正向卷积,先按照一定的比例通过补0来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。输入特征图变换:对输入特征图进行变换,包括插值操作和填充操作。插值操作:当步长(stride)大于1时,需要在输入特征图的相邻值之间插入(stride-1)行和列0。这一步是为了在上采样过程中保持特征图的尺寸变化。填充操作:为了得到正确的输出尺寸,还需要在特征图的边缘进行填充。填充的像素数量与卷积核大小、步长和原始填充量有关。卷积运算。原创 2024-12-02 20:10:21 · 668 阅读 · 0 评论 -
最全卷积总结篇(分组、深度可分离、空洞、转置等)
分组卷积(Group Convolution)是一种卷积操作方式,它最早在AlexNet中引入,并在深度学习中被广泛使用,尤其是在高效模型设计(如MobileNet和ResNeXt)中。分组卷积通过将输入特征通道分为若干组,并在每组内单独进行卷积操作,可以减少计算复杂度和参数量,同时有效利用模型的结构特性。分组卷积的工作原理通道分组:输入特征图的通道图为C_in,输出特征图的通道数为C_out,将每组的C_in和C_out分为G组,每组的通道数为C_in/G和C_out/G。组内卷积。原创 2024-11-26 21:52:51 · 3053 阅读 · 0 评论 -
卷积神经网络的ceil_mode有什么用?
在 PyTorch 中,ceil_mode 参数用于控制最大池化操作中输出张量的形状计算方式。原创 2024-11-21 19:57:45 · 506 阅读 · 0 评论 -
卷积神经网络的padding是什么?如何计算?
当stride = 1,dilation=1,卷积公式的输出为H_out = H_in+2p-k+1,要保证H_out = H_in,所以2p = k-1,p = (k-1)/2。假设输入尺寸是 5×5,卷积核大小是 3×3,步幅为 1。我们希望卷积操作后的输出尺寸与输入相同。根据公式推导得,P = (S(H-1)-H+K)/2,当S=2,上述例子为,P = floor[(8-4+3)/2]=3。原创 2024-11-21 19:56:41 · 1592 阅读 · 0 评论 -
Pytorch中关于索引的函数
index [0,0,0,0] = 1,由于dim = 0,所以输出的张量是input[1,0,0,0] = 1.0000。index [0,0,0,1] = 1,由于dim = 0,所以输出的张量是input[1,0,0,1] = 1.0000。index [0,0,0,2] = 1,由于dim = 0,所以输出的张量是input[1,0,0,2] = 2.0000。index [0,0,0,3] = 0,由于dim = 0,所以输出的张量是input[0,0,0,3]= -1.0009。原创 2024-11-17 23:01:52 · 941 阅读 · 1 评论 -
Tensor做为索引
【代码】Tensor做为索引。原创 2024-10-29 16:23:53 · 610 阅读 · 0 评论 -
Missing key(s) in state_dict,找不到键值对
【代码】Missing key(s) in state_dict,找不到键值对。原创 2024-10-22 20:54:10 · 383 阅读 · 0 评论 -
深度可分离卷积优化平均池化
【代码】深度可分离卷积优化平均池化。原创 2024-09-23 15:44:10 · 224 阅读 · 0 评论 -
卷积和add、sub、mean等的转换
1的卷积,那么结果的大小为500。原创 2024-09-19 15:10:12 · 566 阅读 · 0 评论 -
常见激活函数总结
引入非线性:激活函数通过引入非线性将线性操作转化为非线性操作。线性变换的叠加只能得到一个线性变换,而非线性激活函数允许神经网络学习和表示更复杂的模式和特征。非线性激活函数的存在使得神经网络能够逼近任意复杂的函数。增加网络的表达能力:激活函数的非线性特性增加了神经网络的表达能力。它们允许网络学习非线性关系,从而能够处理更加复杂的数据和任务。激活函数的选择对于网络的性能和学习能力非常重要。实现特定的激活模式:不同的激活函数可以实现不同的激活模式。例如,ReLU。原创 2024-07-19 17:05:04 · 996 阅读 · 0 评论 -
Pytorch-Padding Layers
torch.nn.ConstantPad2d() 是 PyTorch 中的一个模块,用于执行二维常数填充操作。常数填充是一种常用的填充方法,它在输入张量的边界周围以给定的常数值进行填充,以扩展输入的尺寸。零填充是一种常用的填充方法,它在输入张量的边界周围以零值填充来扩展输入的尺寸。torch.nn.ReplicationPad2d() 是 PyTorch 中的一个模块,用于执行二维复制填充操作。复制填充是一种常用的填充方法,它在输入张量的边界周围以。反射填充是一种常用的填充方法,它在输入张量的边界周围以。原创 2024-06-15 23:21:00 · 875 阅读 · 0 评论 -
pytorch--Pooling layers
最大池化是卷积神经网络(CNN)中常用的一种降采样操作,它可以减小输入的空间维度,并保留最显著的特征。例如,对于音频信号的处理或文本数据的卷积操作,可以使用一维最大池化来减小输入的长度。最大池化是卷积神经网络(CNN)中常用的一种降采样操作,它可以减小输入的空间维度,并保留最显著的特征。二维最大池化操作主要应用于处理图像数据。与传统的平均池化操作不同,自适应平均池化允许您指定输出的大小而不是固定的池化窗口大小。与传统的最大池化操作不同,自适应最大池化允许指定输出的大小而不是固定的池化窗口大小。原创 2024-06-15 21:45:40 · 792 阅读 · 0 评论 -
Pytorch--Convolution Layers
输出形状为 (batch_size, out_channels, output_height, output_width),其中 output_height 和 output_width 是输出特征图的高度和宽度,取决于输入图像的大小、卷积核大小、填充和步幅等参数。一维卷积层的输入形状为 (batch_size, in_channels, input_length),其中 batch_size 是批次大小,input_length 是输入序列的长度。因此,转置卷积层通常用于生成更高分辨率的特征图。原创 2024-06-12 18:28:28 · 819 阅读 · 2 评论 -
Pytorch--Hooks For Module
在 PyTorch 中,register_module_forward_hook 是一个方法,用于向模型的模块注册前向传播钩子(forward hook)。在 PyTorch 中,register_module_backward_hook 是一个方法,用于向模型的模块注册反向传播钩子(backward hook)。在 PyTorch 中,register_module_forward_pre_hook 是一个方法,用于向模型的模块注册前向传播预钩子(forward pre-hook)。原创 2024-06-11 16:04:21 · 437 阅读 · 0 评论 -
Pytorch容器
torch.nn.ParameterList() 是 PyTorch 中的一个类,用于将多个参数(torch.nn.Parameter)组合成一个参数列表。当我们定义自己的神经网络模型时,通常会继承 torch.nn.Module 类,并重写其中的方法,以定义模型的结构和前向传播逻辑。在神经网络中,我们需要定义可训练的参数,例如模型的权重和偏置。torch.nn.ParameterDict() 是 PyTorch 中的一个类,用于将多个参数(torch.nn.Parameter)组合成一个参数字典。原创 2024-06-11 15:47:38 · 1172 阅读 · 0 评论 -
pytorch数学操作
使用 torch.bitwise_not() 函数对 x 进行位非操作,得到的结果张量 y 的元素将是对应位置上的二进制取反结果。需要注意的是,位与操作将每个元素的二进制表示的对应位进行逻辑与操作,只有当对应位都为 1 时,结果位才为 1,否则为 0。在 PyTorch 中,torch.clamp() 函数用于对张量进行截断操作,将张量中的元素限制在指定范围内。它返回一个新的张量,其中的元素是输入张量中对应元素的向下取整结果。它返回一个新的张量,其中的元素是输入张量中对应元素的向上取整结果。原创 2024-06-05 16:13:34 · 1454 阅读 · 0 评论 -
pytorch(其他操作)
深拷贝是指创建一个新对象,将被复制对象的所有内容逐个复制到新对象中,包括对象的所有属性和嵌套对象。torch.diag_embed() 是 PyTorch 中的一个函数,用于创建一个以给定对角线元素填充的张量,或者将一维张量转换为对角矩阵。torch.diag() 是 PyTorch 中的一个函数,用于创建一个以给定对角线元素填充的张量,或者从一个二维张量中提取对角线元素。torch.diagflat() 是 PyTorch 中的一个函数,用于创建一个以给定一维张量进行扁平化后的元素填充的张量。原创 2024-06-05 15:30:56 · 1180 阅读 · 0 评论 -
Pytorch-Reduction Ops
torch.argmax() 是 PyTorch 中的一个函数,用于在指定维度上获取张量中最大值的索引。input:输入张量。dim:可选参数,指定在哪个维度上进行操作。如果未指定,则默认在最后一个维度上进行操作。keepdim:可选参数,指定是否保持输出张量的维度与输入张量相同。默认为 False,表示不保持维度"""# 创建一个张量# 沿着第一个维度获取最大值的索引print(max_indices) # 输出: tensor([1, 1, 1])原创 2024-05-29 14:06:10 · 1213 阅读 · 0 评论 -
pytorch比较操作
它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素大于或等于,元素为 False 表示对应位置的元素小于。它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素相等,元素为 False 表示对应位置的元素不相等。它比较两个张量的对应元素,并返回一个新的布尔张量,其中元素为 True 表示对应位置的元素大于,元素为 False 表示对应位置的元素小于或等于。它返回一个新的布尔张量,其中每个元素表示对应位置的元素是否为无穷大。原创 2024-05-28 19:17:08 · 1621 阅读 · 0 评论 -
Pytorch索引、切片、连接
torch.hstack() 是 PyTorch 中的一个函数,用于沿着水平方向(列维度)堆叠张量来创建一个新的张量。torch.column_stack() 是 PyTorch 中的一个函数,用于按列堆叠张量来创建一个新的张量。torch.masked_select() 是 PyTorch 中的一个函数,用于根据给定的掩码从输入张量中选择元素并返回一个新的张量。torch.index_select() 是 PyTorch 中的一个函数,用于按索引从输入张量中选择元素并返回一个新的张量。原创 2024-05-28 14:39:12 · 935 阅读 · 0 评论 -
Pytorch创建张量
torch.normal() 是 PyTorch 中用于创建具有指定均值和标准差的正态分布随机值的张量的函数。torch.randn() 是 PyTorch 中用于创建具有正态分布(高斯分布)随机值的张量的函数。torch.zeros() 函数是 PyTorch 中用于创建元素全为零的张量的函数。torch.ones() 函数是 PyTorch 中用于创建元素全为一的张量的函数。torch.rand() 是 PyTorch 中用于创建具有随机值的张量的函数。原创 2024-05-27 19:37:18 · 1277 阅读 · 0 评论 -
Pytorch张量视图(Tensor Views)
张量视图(Tensor Views)是 PyTorch 中的一个重要概念。视图是指与原始张量共享相同底层数据的新张量,但具有不同的形状或步幅。通过创建张量视图,我们可以在不复制数据的情况下对张量进行形状变换、切片和其他操作,从而实现快速且内存高效的操作。原创 2024-05-27 17:03:41 · 1366 阅读 · 0 评论 -
pytorch的点积、矩阵乘法、逐元素乘法
在 PyTorch 中,可以使用 torch.mul()、torch.multiply() 或直接使用 * 运算符来执行张量的逐元素相乘操作。原创 2024-05-20 20:11:11 · 2680 阅读 · 0 评论 -
PyTorch中保存模型的两种方式
这种保存形式将模型的参数保存为一个字典,其中包含了所有模型的权重和偏置等参数。状态字典保存了模型在训练过程中学到的参数值,而不包含模型的结构。可以使用这个字典来加载模型的参数,并将其应用于相同结构的模型。序列化模型保存了模型的完整信息,可以完全恢复模型的状态,包括模型的结构、权重、偏置以及其他相关参数。这种保存形式非常适用于仅保存和加载模型的参数,而不需要保存和加载模型的结构。这种保存形式适用于需要保存和加载完整模型信息的情况,包括模型的结构和参数。原创 2024-02-22 19:15:52 · 1252 阅读 · 2 评论