【问题标题】:Organize tensorboard graph with pytorch lightning用 pytorch 闪电组织张量板图
【发布时间】:2021-02-28 12:23:45
【问题描述】:

我已使用log_graph=True 将默认张量板记录器 (from pytorch_lightning.loggers import TensorBoardLogger) 添加到我的 pytorch 闪电训练器中。

当我训练我的模型时,我的图表的第一个视图显示了三个块:

输入 => MyNetworkClassName => 输出

到目前为止一切顺利。

但是,当我展开 MyNetworkClassName 时,它​​绝对会为我提供网络中发生的一切。到处都是箭。我想将此图组织成带有可扩展子图的更简单的块。所以在我的例子中,我的网络有一个典型的编码器 - 增强器 - 解码器结构,我想要更像这样的东西:

  • 第一张图:

    1. 输入 => MyNetworkClassName => 输出
  • 放大 MyNetworkClassName:

    1. 编码器 => 增强器 -> 解码器
  • 放大编码器:

    1. encoder_layer1 => encoder_layer2 => ...
  • 放大encoder_layer1:

    1. conv2d => batchnorm

我在这里有什么选择?我应该把所有东西都放在单独的类中吗?是否有任何命令可以让我将某些操作组合在一起?

【问题讨论】:

    标签: tensorboard pytorch-lightning


    【解决方案1】:

    将代码重构为类也会影响张量板图(其中重构为方法不会)。将显示为可扩展块的典型示例类:

    class EncoderLayer(nn.Module):
    """Encoder layer class"""
    
        def __init__(self, activation_function, kernel_num, kernel_size, idx):
            super().__init__()
            self.layer = nn.Sequential(
                ComplexConv2d(
                kernel_num[idx],
                kernel_num[idx + 1],
                kernel_size=(kernel_size, 2),
            ),
            nn.BatchNorm2d(kernel_num[idx + 1])
            activation_function,
        )
    
    def forward(self, x):
        return self.layer(x)
    

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 2021-11-06
      • 1970-01-01
      • 2018-09-20
      • 2021-02-07
      • 2021-10-11
      • 2022-10-17
      • 2021-03-03
      • 2021-09-22
      相关资源
      最近更新 更多