![](https://img-blog.csdnimg.cn/direct/361f1e45a1514caf8eff1d97ef4ff2c7.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
PyTorch
文章平均质量分 83
深度学习之PyTorch
熊猫Devin
懂从看开始,用从写开始,会从教开始!
展开
-
PyTorch学习笔记目录(更新中)
PyTorch学习笔记目录基础函数篇PyTorch学习笔记之基础函数篇(一)TensorPyTorch学习笔记之基础函数篇(二)算子01PyTorch学习笔记之基础函数篇(三)算子02PyTorch学习笔记之基础函数篇(四)算子03PyTorch学习笔记之基础函数篇(五)随机值生成函数PyTorch学习笔记之基础函数篇(六)运算函数介绍PyTorch学习笔记之基础函数篇(七)基本数学运算PyTorch学习笔记之基础函数篇(八)线性代数运算更新中…原创 2024-03-15 22:22:55 · 489 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(一)
【代码】PyTorch学习笔记(一)原创 2024-03-10 21:02:10 · 641 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(二)
在PyTorch中,你可以使用isinstance()函数来判断一个对象是否是torch.Tensor类型。在上面的代码中,isinstance(tensor, torch.Tensor)将返回True,因为tensor是一个torch.Tensor对象。如果tensor不是torch.Tensor类型,isinstance()将返回False。torch.is_tensor()函数会返回True,如果对象是一个Tensor,无论它是哪种类型的Tensor。如果对象不是Tensor,它将返回False。原创 2024-03-11 21:51:18 · 932 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(三)
注意,torch.arange的结束值是不包含的,因此你可能需要调整end值以确保它包含在你想要的等差数列中。在PyTorch中,创建等差数列并不像NumPy那样直接,因为PyTorch主要专注于张量(tensor)的计算,而不是生成序列这样的任务。请注意,PyTorch中的tensor默认是有数据类型的,比如torch.float32,而NumPy数组则没有默认的数据类型。在PyTorch中,创建指定形状的单位矩阵可以使用torch.eye函数,其使用方式与NumPy中的numpy.eye函数非常相似。原创 2024-03-12 21:48:12 · 518 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(四)
在PyTorch中,torch.randn 函数用于创建一个给定形状的张量(Tensor),其中每个元素都是从标准正态分布(均值为0,标准差为1)中随机抽取的。在PyTorch中,torch.rand 函数用于创建一个给定形状的张量(Tensor),其中每个元素都是从均匀分布 U(0, 1) 中随机抽取的。在这个例子中,torch.zeros(3, 3) 创建了一个3x3的矩阵,其中所有元素都是0。在这个例子中,torch.ones(3, 3) 创建了一个3x3的矩阵,其中所有元素都是1。原创 2024-03-12 22:19:03 · 1316 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(五)
torch.bernoulli() 是 PyTorch 中的一个函数,它用于生成符合伯努利分布的随机数。伯努利分布是一个离散型概率分布,描述了一个随机变量只有两种可能的结果:0 或 1。在这个示例中,我们创建了一个包含三个元素的张量 probabilities,每个元素都表示伯努利分布的成功概率。然后,我们使用 torch.bernoulli() 生成了一个与 probabilities 形状相同的张量 samples,其中每个元素都是根据对应概率从伯努利分布中随机生成的 0 或 1。原创 2024-03-13 22:06:25 · 1108 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(六)
PyTorch 提供了丰富的运算函数,用于进行各种数学和矩阵操作。这些函数可以分为几个主要类别,包括基本数学运算、线性代数运算、随机数生成、统计运算、张量操作等。原创 2024-03-13 22:18:38 · 914 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(七)
torch.add() 是 PyTorch 中的一个函数,用于执行逐元素的加法操作。这个函数可以接受多个张量(tensors)作为输入,并返回一个新的张量,其中每个元素都是输入张量对应元素之和。函数的工作原理是将alpha乘以input张量,然后加上other张量或标量。如果other是一个标量,则它会被加到input张量的每个元素上。如果other是一个张量,则它必须具有与input张量相同的形状,以便逐元素地相加。原创 2024-03-14 22:54:29 · 1717 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(八)
torch.mm() 是 PyTorch 中的一个函数,用于执行矩阵乘法操作。这个函数会接受两个张量作为输入,并返回它们的矩阵乘积。torch.mm() 函数返回一个新的张量,它是 mat1 和 mat2 的矩阵乘积。注意,mat1 的列数必须等于 mat2 的行数,以满足矩阵乘法的规则。在这个例子中,mat1 和 mat2 都是 2x2 的矩阵。使用 torch.mm() 函数计算了它们的矩阵乘积,并打印了结果。原创 2024-03-14 23:22:10 · 984 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(九)
torch.mean() 是 PyTorch 中的一个函数,用于计算张量(Tensor)的平均值。你可以用它来计算一个张量所有元素的平均值,或者指定某个维度上的平均值。你可以通过 dim 参数来指定在哪个维度上计算平均值。例如,对于一个二维张量(通常可以看作是一个矩阵),你可以计算每一列或每一行的平均值。默认情况下,torch.mean() 函数会返回一个一维张量作为结果。这个函数在数据预处理、统计分析以及神经网络训练过程中计算损失等场景中非常有用。原创 2024-03-15 23:38:58 · 1151 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十)
例如,在某些情况下,可能需要将一个形状为 (batch_size, channels, height, width) 的图像张量调整为 (batch_size, 1, channels, height, width),以便能够作为某些模型的输入。接下来,我们尝试只移除特定的维度。使用 torch.stack((x, y), dim=0),我们在第 0 维(即最前面)堆叠了这两个张量,得到了一个形状为 (2, 3) 的张量 z。在这个例子中,我们首先创建了一个形状为 (1, 3, 1, 4) 的张量 x。原创 2024-03-16 10:03:53 · 811 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十一)
在PyTorch中,torch.acos 函数用于计算张量中每个元素的反余弦值(arc cosine),也就是余弦函数的逆运算。在这个例子中,torch.acos 函数计算了输入张量 x 中每个元素的反余弦值,并将结果存储在 y 中。在神经网络中,torch.acos 可能不常用作激活函数,但在某些特定的计算任务中,比如处理与角度或三角关系有关的数据时,它可能会很有用。在这个例子中,torch.abs 函数计算了输入张量 x 中每个元素的绝对值,并将结果存储在 y 中。例子 2: 使用标量与张量相加。原创 2024-03-16 16:47:37 · 1234 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十二)
在PyTorch中,torch.addcmul 函数是一个逐元素的运算,它将两个张量(tensors)的对应元素相乘,然后将结果乘以一个标量,最后再加上一个第三个张量的对应元素。在PyTorch中,torch.addcdiv 是一个函数,它执行一个逐元素的操作,该操作涉及将两个张量(tensors)相除后的结果再与一个第三个张量相加。其中 c 是一个标量,tensor1, tensor2, 和 tensor3 是输入张量,out 是输出张量。原创 2024-03-16 20:05:47 · 402 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十三)
在PyTorch中,torch.ceil 函数用于对张量(tensor)中的每个元素向上取整,即对每个元素找到不小于它的最小整数。在这个例子中,torch.rsqrt 函数计算了张量 x 中每个元素的平方根倒数,并将结果存储在 y 中。可以看到,y 中的每个元素都是 x 中对应元素的平方根倒数。在这个例子中,torch.reciprocal 函数计算了张量 x 中每个元素的倒数,并将结果存储在 y 中。在这个例子中,torch.sqrt 函数计算了张量 x 中每个元素的平方根,并将结果存储在 y 中。原创 2024-03-16 20:25:31 · 960 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十四)
在这个例子中,torch.round() 函数将张量 x 中的每个元素四舍五入到了最接近的整数,并将结果存储在 y 中。需要注意的是,在处理可能包含零的除法时,torch.remainder 和 torch.fmod 的行为可能也有所不同,因为零不能作为除数。在这个例子中,divisor 是一个与张量 x 形状相同的张量,torch.fmod 函数分别计算了 x 中每个元素除以 divisor 中对应元素后的浮点余数。torch.frac 会返回一个新的张量,其中每个元素都是输入张量中对应元素的分数部分。原创 2024-03-16 21:03:26 · 1078 阅读 · 0 评论 -
PyTorch学习笔记之基础函数篇(十五)
torch.ne() 是 PyTorch 中的一个函数,用于逐元素地比较两个张量(tensors),并返回一个布尔值张量(boolean tensor),其中每个元素表示对应位置上的第一个张量中的元素是否不等于第二个张量中的元素。torch.gt() 是 PyTorch 中的一个函数,用于逐元素地比较两个张量(tensors),并返回一个布尔值张量(boolean tensor),其中每个元素表示对应位置上的第一个张量中的元素是否大于第二个张量中的元素。原创 2024-03-18 20:19:54 · 1454 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(一)
2、其输出不是以0为中心而是都大于0的(这会降低权重更新的效率),这样下一层的神经元会得到上一层输出的全正信号作为输入,所以Sigmoid激活函数不适合放在神经网络的前面层而一般是放在最后的输出层中使用。1、其值域为[0,1],非常适合作为模型的输出函数用于输出一个(0,1)范围内的概率值,可用于将预测概率作为输出的模型,比如用于表示二分类的类别或者用于表示置信度。3、该函数是连续可导的(即可微),可以提供非常平滑的梯度值,防止模型训练过程中出现突变的梯度(即避免「跳跃」的输出值)。原创 2024-03-16 15:58:12 · 1204 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(二)
双曲正切函数 tanh(x) 的定义是 (e^x - e^-x) / (e^x + e^-x),其中 e 是自然对数的底数。tanh 函数的值域是 [-1, 1],并且它是奇函数,即 tanh(-x) = -tanh(x)。3、当神经网络的层数增多的时候,由于在进行反向传播的时候,链式求导,多项相乘,函数进入饱和区(导数接近于零的地方)就会逐层传递,这种现象被称为梯度消失。3、在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。原创 2024-03-17 10:11:46 · 1068 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(三)
4、它保留了 step 函数的生物学启发(只有输入超出阈值时神经元才激活),不过当输入为正的时候,导数不为零,从而允许基于梯度的学习(尽管在 x=0 的时候,导数是未定义的)。当输入为负值的时候,ReLU 的学习速度可能会变得很慢,甚至使神经元直接无效,因为此时输入小于零而梯度为零,从而其权重无法得到更新,在剩下的训练过程中会一直保持静默。1、ReLU的输入值为负的时候,输出始终为0,其一阶导数也始终为0,这样会导致神经元不能更新参数,也就是神经元不学习了,这种现象叫做“Dead Neuron”。原创 2024-03-17 10:30:10 · 1074 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(四)
2、LeakyRelu激活函数通过在负半轴添加一个小的正斜率(使得负轴的信息不会全部丢失)来解决ReLU激活函数的“死区”问题,该斜率参数𝜆λ是手动设置的超参数,一般设置为0.01。在PyTorch中,torch.leaky_relu 函数是用于实现 Leaky ReLU 激活函数的。在模型的前向传播过程中,数据会首先通过全连接层,然后经过 Leaky ReLU 激活函数,最后再通过另一个全连接层。对于非负输入值,Leaky ReLU 的行为类似于普通的 ReLU 函数,即输出就是输入值本身。原创 2024-03-17 20:20:25 · 1041 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(五)
RReLU 是 Leaky ReLU 的一个变体,其中负输入值的斜率是在训练过程中随机采样的,并在每次前向传播时保持固定。请注意,由于 RReLU 的随机性,每次模型的前向传播可能会得到稍微不同的结果,这有助于模型的泛化能力。然而,在评估模型时,为了获得可重复的结果,通常会将随机性固定下来,这可以通过设置 torch.manual_seed() 来实现。在这个例子中,nn.RReLU 被用作 MyModel 模型中的一个层,它将在每次前向传播时随机选择负斜率,并应用于全连接层 self.fc1 的输出。原创 2024-03-17 20:44:01 · 434 阅读 · 0 评论 -
PyTorch学习笔记之激活函数篇(六)
3、RReLU(随机校正线性单元)。在RReLU中,负部分的斜率在训练中被随机化到给定的范围内,然后再测试中被固定。在最近的Kaggle国家数据科学碗(NDSB)比赛中,由于RReLU的随机性,它可以降低过拟合。因此RReLU是有利的,而在大数据的情况下,未来还需要做更多的研究。1、RReLU和PReLU的表达式一样,但𝛼α参数不一样,这里的𝛂α是个随机震荡的数,范围(pytorch):1/8~1/3。(对应图的参数为lower =1/8,upper =1/3)原创 2024-03-17 21:00:40 · 339 阅读 · 0 评论