【问题标题】:Why the MaxPool2d layer of resnet50 outputs 2 tensors when it is visualized in the tensorboard?为什么 resnet50 的 MaxPool2d 层在 tensorboard 中可视化时会输出 2 个张量?
【发布时间】:2021-09-23 01:28:11
【问题描述】:

我想知道为什么 resnet50 的 MaxPool2d 层在张量板中可视化时会输出 2 个张量? resnet50的可视化和代码如下图所示。谢谢!

代码:

import torchvision
import torch
from tensorboardX import SummaryWriter
import torch.nn as nn
model = torchvision.models.resnet50(pretrained=False)
dummy_input=torch.rand((10, 3, 224, 224))
with SummaryWriter(comment='Net1')as w:
    w.add_graph(model, (dummy_input,))

图片:

【问题讨论】:

  • 不是 100% 确定,但它可能正在存储反向传播可能需要的最大索引

标签: tensorflow pytorch tensorboard resnet


【解决方案1】:

ResNet 中最大池旁边的块有一个残差连接:这意味着该块的输入在 conv 层之间拆分,并且“直接”路径将添加到该块的 conv 的输出中。

此残留链接在此图中标记为“身份”:

【讨论】:

  • 谢谢你的回答!@Shai 我同意你的看法。另外,我还有一个问题,为什么 Bottleneck0 中的 Sequential[downsample](此残差链接标记为“身份”。)还向 Bottleneck1 输出 15 个张量,如图 2 所示?如图 3 所示,这 15 个张量被输入到 Bottleneck1 中的不同位置。我们如何寻找这 15 个张量的含义?我们如何理解这个操作? [图2][1][图3][2][1]:i.stack.imgur.com/4m8zB.jpg[2]:i.stack.imgur.com/5C1Qx.jpg
  • 我在其他网络比如Senet也看到了一些类似的情况,但是输入到其他block的张量数达到了81个,是不是tensorboard的特殊内部优化操作?
猜你喜欢
  • 2017-05-31
  • 2018-03-18
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 2017-12-18
  • 2021-04-03
  • 2020-11-10
相关资源
最近更新 更多