day48
ai举例子通俗易懂理解@浙大疏锦行
下面用例子帮你理解这几个知识点:
1. 随机张量的生成:torch.randn函数
torch.randn会生成符合标准正态分布(均值为0,标准差为1)的随机数张量,形状由输入的参数决定。
• 比如torch.randn(2, 3),会生成一个2行3列的张量,里面的数是随机的,可能像这样:
tensor([[ 0.52, -1.23, 0.89],
[-0.34, 1.56, -0.71]])
可以理解为“按指定形状,随机抽一批符合标准正态分布的数”。
2. 卷积和池化的计算公式(简单类比)
• 卷积:比如用一个3×3的卷积核扫过5×5的图片,步长为1,边缘不填充(padding=0),最后得到的结果是3×3(5-3+1=3)。就像用小刷子刷大图片,刷子每挪一步,留下一个“局部计算结果”。
• 池化:比如对4×4的特征图做2×2的最大池化,步长为2,结果是2×2(4÷2=2)。相当于把图片分成2×2的小块,每个小块里取最大的数,“压缩图片同时保留关键信息”。
3. PyTorch的广播机制(加法/乘法)
当两个形状不同的张量运算时,会自动“扩展”成相同形状再计算(前提是能扩展)。
• 加法例子:
张量A是[1, 2, 3](形状1×3),张量B是[[4], [5]](形状2×1),相加时会自动扩展:
A扩展成[[1,2,3], [1,2,3]](2×3),B扩展成[[4,4,4], [5,5,5]](2×3),结果是[[5,6,7], [6,7,8]]。
• 简单说:“能对齐的维度就直接算,不能对齐的就自动复制扩展,直到形状一致”。
(numpy的广播机制和这个逻辑完全一样)