深入浅出PyTorch - Pytorch可视化

深入浅出PyTorch



一、可视化网络结构

为了解决实现快速debug,精准描述深度网络的输入结构,输出结构及参数等信息,人们使用torchinfo工具包。

1.1torchinfo使用

    import torch.nn as nn
    from torchinfo import summary
    transformer_model = nn.Transformer(nhead=16)
    summary(transformer_model, [(10, 32, 10), (10, 32, 10)])

1.2结构化输出

====================================================================================================
Layer (type:depth-idx)                             Output Shape              Param #
====================================================================================================
Transformer                                        --                        --
├─TransformerEncoder: 1-1                          --                        (recursive)
│    └─ModuleList: 2-1                             --                        --
├─TransformerDecoder: 1                            --                        --
│    └─ModuleList: 2-2                             --                        --
├─TransformerEncoder: 1-2                          [10, 32, 512]             --
│    └─ModuleList: 2-1                             --                        --
│    │    └─TransformerEncoderLayer: 3-1           [10, 32, 512]             3,152,384
│    │    └─TransformerEncoderLayer: 3-2           [10, 32, 512]             3,152,384
│    │    └─TransformerEncoderLayer: 3-3           [10, 32, 512]             3,152,384
│    │    └─TransformerEncoderLayer: 3-4           [10, 32, 512]             3,152,384
│    │    └─TransformerEncoderLayer: 3-5           [10, 32, 512]             3,152,384
│    │    └─TransformerEncoderLayer: 3-6           [10, 32, 512]             3,152,384
├─TransformerDecoder: 1                            --                        --
│    └─ModuleList: 2-3                             --                        (recursive)
├─TransformerEncoder: 1-1                          --                        (recursive)
│    └─LayerNorm: 2-4                              [10, 32, 512]             1,024
├─TransformerDecoder: 1-3                          [20, 32, 512]             --
│    └─ModuleList: 2-2                             --                        --
│    │    └─TransformerDecoderLayer: 3-7           [20, 32, 512]             4,204,032
│    │    └─TransformerDecoderLayer: 3-8           [20, 32, 512]             4,204,032
│    │    └─TransformerDecoderLayer: 3-9           [20, 32, 512]             4,204,032
│    │    └─TransformerDecoderLayer: 3-10          [20, 32, 512]             4,204,032
│    │    └─TransformerDecoderLayer: 3-11          [20, 32, 512]             4,204,032
│    │    └─TransformerDecoderLayer: 3-12          [20, 32, 512]             4,204,032
│    └─LayerNorm: 2-5                              [20, 32, 512]             1,024
====================================================================================================
Total params: 25,229,312
Trainable params: 25,229,312
Non-trainable params: 0
Total mult-adds (M): 378.47
====================================================================================================
Input size (MB): 1.97
Forward/backward pass size (MB): 184.81
Params size (MB): 100.92
Estimated Total Size (MB): 287.69
====================================================================================================

二、使用TensorBoard可视化训练过程

1.安装配置

命令窗口输入

pip install tensorboardX
from tensorboardX import SummaryWriter
writer = SummaryWriter('./runs')

命令窗口输入

tensorboard --logdir=/path/to/logs/ --port=xxxx

2.模型结构可视化

transformer_model = nn.Transformer(nhead=16)
    writer.add_graph(transformer_model, input_to_model=[torch.rand(10, 32, 512),
    													torch.rand(20, 32, 512)])
    writer.close()

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值