1、随机张量的生成:torch.randn函数
torch.randn 是 PyTorch 里用于生成随机数张量的函数。它所生成的随机数遵循标准正态分布,也就是均值为 0,标准差为 1 的分布。在神经网络的训练中,这个函数十分常用,像初始化权重的时候就会用到。
通俗来讲,你可以把 torch.randn 想象成一个 “随机数生成器”,它能按照你的要求创建指定大小的张量,并且张量里的每个数都是从标准正态分布中随机抽取的。
2、卷积和池化的计算公式(可以不掌握,会自动计算的)
卷积的计算
在卷积操作中,输出的尺寸由输入尺寸、卷积核大小、步长(stride)以及填充(padding)共同决定。其计算公式如下:
输出尺寸=⌊步长输入尺寸−卷积核大小+2×填充⌋+1
举个例子,当输入是一个 10×10 的图像,使用 3×3 的卷积核,步长设为 1,不进行填充(即填充为 0)时,输出的尺寸就是 8×8。
⌊110−3+2×0⌋+1=8
池化的计算
池化操作的输出尺寸计算方式和卷积类似。以最大池化(Max Pooling)为例,其计算公式为:
输出尺寸=⌊步长输入尺寸−池化核大小⌋+1
例如,输入为 8×8 的特征图,采用 2×2 的池化核,步长为 2,那么输出尺寸就是 4×4。
⌊28−2⌋+1=4
3、pytorch的广播机制:加法和乘法的广播机制
PyTorch 的广播机制允许在不同形状的张量之间进行算术运算,不过需要满足一定的规则。
加法的广播机制
当两个张量的形状不同时,PyTorch 会尝试对它们进行广播,使其形状变得兼容。具体规则是:从右往左逐个比较两个张量的维度。如果维度相等,或者其中一个维度为 1,那么就可以进行广播;否则,会抛出错误。
例如:
import torch
# 张量a的形状是(3, 1)
a = torch.tensor([[1], [2], [3]])
# 张量b的形状是(1, 4)
b = torch.tensor([[1, 2, 3, 4]])
# 广播后,两个张量的形状都变为(3, 4)
c = a + b
print(c)
乘法的广播机制
乘法的广播机制和加法是一样的,也是按照从右往左的顺序比较维度,遵循相同的规则。
例如:
# 张量a的形状是(3, 1)
a = torch.tensor([[2], [3], [4]])
# 张量b的形状是(1, 3)
b = torch.tensor([[1, 2, 3]])
# 广播后,两个张量的形状都变为(3, 3)
c = a * b
print(c)
311

被折叠的 条评论
为什么被折叠?



