Visualización de la estructura de la red: biblioteca de resumen de antorcha

La biblioteca torchsummary es una biblioteca de uso común para la visualización de la estructura de la red de aprendizaje profundo: dirección de instalación
La biblioteca torch-summary es una versión mejorada de torchsummary, introducción a la biblioteca y dirección de instalación.Se recomienda
instalar la biblioteca torch-summary en lugar de la biblioteca torchsummary, la primera es fuera de las funciones heredadas de este último. También resolvió muchos errores en este último.

Problemas comunes con la biblioteca Torchsummary

1. Pregunta 1: Cuando se utiliza torchsummary para ver la estructura de la red, se informa un error: AttributeError: el objeto 'lista' no tiene el atributo 'tamaño'

inserte la descripción de la imagen aquí

Solución:
pip uninstall torchsummary        # 卸载原来的torchsummary库
pip install torch-summary==1.4.4  # 安装升级版本torch-summary
ejemplo:
from torchvision import models
import torchsummary as summary
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
vgg = models.vgg16().to(device)
summary(vgg,(3,224,224))

Pregunta 2: error de resumen de antorcha: TypeError: el objeto 'módulo' no es invocable

solución:
from torchvision import models
import torchsummary as summary
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
vgg = models.vgg16().to(device)
summary.summary(vgg,(3,224,224))

Uso común de la biblioteca de resumen de Torch

# 使用样式
from torchsummary import summary
summary(model, input_size=(channels, H, W))

# 多输入情况并且打印不同层的特征图大小
from torchsummary import summary
summary(model,first_input,second_input)

# 打印不同的内容
import torch
import torch.nn as nn
from torch-summary import summary

class LSTMNet(nn.Module):
    """ Batch-first LSTM model. """
    def __init__(self, vocab_size=20, embed_dim=300, hidden_dim=512, num_layers=2):
        super().__init__()
        self.hidden_dim = hidden_dim
        self.embedding = nn.Embedding(vocab_size, embed_dim)
        self.encoder = nn.LSTM(embed_dim, hidden_dim, num_layers=num_layers, batch_first=True)
        self.decoder = nn.Linear(hidden_dim, vocab_size)

    def forward(self, x):
        embed = self.embedding(x)
        out, hidden = self.encoder(embed)
        out = self.decoder(out)
        out = out.view(-1, out.size(2))
        return out, hidden

summary(
    LSTMNet(),
    (100,),
    dtypes=[torch.long],
    branching=False,
    verbose=2,
    col_width=16,
    col_names=["kernel_size", "output_size", "num_params", "mult_adds"],)

Resultado de impresión:
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Joker00007/article/details/127308919
Recomendado
Clasificación