Você está na página 1de 13

Machine Translated by Google

PODANDO FILTRO NO FILTRO

Fanxu Meng1,2ÿ , Hao Cheng2ÿ , Ke Li2 , Huixiang Luo2 , Xiaowei Guo2 , Guangming Lu1† , Xing Sun2†
1
Escola de Ciência e Tecnologia da Computação, Harbin Institute of Technology, Shenzhen, China
2
Tencent Youtu Lab, Xangai, China
{18S151514}@stu.hit.edu.cn, luguangm@hit.edu.cn, {louischeng, tristanli, huixiangluo, scorpioguo, winfredsun}@tencent.com

ABSTRATO

A poda tornou-se uma técnica muito poderosa e eficaz para comprimir e acelerar redes neurais modernas.
Os métodos de poda existentes podem ser agrupados em duas categorias: poda de filtro (FP) e poda de
peso (WP). FP ganha em compatibilidade de hardware, mas perde na taxa de compressão em comparação
com WP. Para convergir a força de ambos os métodos, propomos podar o filtro no filtro. Especificamente,
C×K×K C
tratamos um filtro F ÿ R então, podando as listras em vezcomode todo o filtro,
listras K×K podemos
, ou seja,obter
1 × 1uma ÿR ,
granularidade
filtros
mais fina do que o FP tradicional, sendo compatível com o hardware. Nós denominamos nosso método
como SWP (Poda Stripe-Wise). O SWP é implementado introduzindo uma nova matriz aprendível chamada
Filter Skeleton, cujos valores refletem a forma de cada filtro. Como alguns trabalhos recentes mostraram que
a arquitetura podada é mais crucial do que os pesos importantes herdados, argumentamos que a arquitetura
de um único filtro, ou seja, a forma, também é importante. Por meio de experimentos extensivos,
demonstramos que o SWP é mais eficaz em comparação com os métodos anteriores baseados em FP e
atinge a taxa de corte de última geração nos conjuntos de dados CIFAR-10 e ImageNet sem queda de
arXiv:2009.14410v3
dezembro
[cs.CV]
2020
de
9

precisão óbvia. O código está disponível neste url.

1. Introdução

Redes Neurais Profundas (DNNs) alcançaram um progresso notável em muitas áreas, incluindo reconhecimento de fala [1],
visão computacional [2, 3], processamento de linguagem natural [4], etc. No entanto, a implantação do modelo às vezes é cara
devido ao grande número de parâmetros nas DNNs. Para aliviar esse problema, várias abordagens foram propostas para
compactar DNNs e reduzir a quantidade de computação. Esses métodos podem ser classificados em duas categorias principais:
poda de peso (WP) e poda de filtro (canal) (FP).

WP é um método de poda refinado que remove os pesos individuais, por exemplo, cujo valor é próximo de 0, dentro da rede [5,
6], resultando em uma rede esparsa sem sacrificar o desempenho de previsão. No entanto, como as posições dos pesos
diferentes de zero são irregulares e aleatórias, precisamos de um registro extra da posição dos pesos, e a rede esparsa podada
por WP não pode ser apresentada de forma estruturada como FP devido à aleatoriedade dentro da rede, tornando o WP incapaz
de obter aceleração em processadores de uso geral. Em contraste, os métodos baseados em FP [7, 8, 9] removem filtros ou
canais dentro das camadas de convolução, portanto, a rede podada ainda está bem organizada em uma estrutura e pode
facilmente alcançar aceleração em processadores gerais. Um pipeline de remoção de filtro padrão é o seguinte: 1) Treine um
modelo maior até a convergência. 2) Podar os filtros de acordo com alguns critérios 3) Ajustar a rede podada. [10] observa que
treinar o modelo podado com inicialização aleatória também pode alcançar alto desempenho. Portanto, é a arquitetura de rede, e
não os pesos treinados que importam. Neste artigo, sugerimos que não apenas a arquitetura da rede, mas a arquitetura do próprio
filtro também é importante. [11, 12] também apresentam argumentos semelhantes de que o filtro com um tamanho de kernel
maior pode levar a um melhor desempenho. No entanto, o custo de computação é caro. Assim, para um determinado mapa de
recursos de entrada, [11, 12] usa filtros com tamanhos de kernel diferentes (por exemplo, 1 × 1, 3 × 3 e 5 × 5) para realizar a
convolução e concatenar todo o mapa de recursos de saída. Mas o tamanho do kernel de cada filtro é definido manualmente.
Precisa de experiência e conhecimento profissional para projetar uma estrutura de rede eficiente. Nós nos perguntamos e se
pudermos aprender o tamanho ideal do kernel de cada filtro por meio da poda. Nossa intuição é ilustrada na Figura 1. Sabemos
que a estrutura das redes profundas é importante para as tarefas de aprendizado. Por exemplo, a rede residual é mais fácil de
otimizar e apresenta melhor desempenho do que o VGG. No entanto, descobrimos que existe outra estrutura escondida dentro da rede, que chamamo

1 ÿ
Na lista de autores, autores contribuem igualmente; Fanxu Meng trabalha † Indica os autores correspondentes. O trabalho é conduzido enquanto denota que os
como estagiário no Tencent Youtu Lab.
Machine Translated by Google

-18

imagem
FC1000
AvgPool
Piscinaÿ/
2

conv.,
3x3
64 conv.,
3x3
64 conv.,
3x3
64 conv.,
3x3
64
conv.,
128
3x3 conv.,
128
3x3 conv.,
128
3x3 conv.,
256
3x3 conv.,
256
3x3 conv.,
256
3x3 conv.,
512
3x3 conv.,
512
3x3 conv.,
512
3x3
ResNet
conv.,
2 /
64,
x
7

conv,
128ÿ/
3x3
2 conv.,
256ÿ/
3x3
2 conv.,
512ÿ/
3x3
2

imagem
FC4096 FC4096 FC1000
Piscinaÿ/
2 Piscinaÿ/
2 Piscinaÿ/
2 Piscinaÿ/
2 Piscinaÿ/
2

VGG
-16
conv.,
3x3
64 conv.,
3x3
64
conv.,
128
3x3 conv.,
128
3x3 conv.,
256
3x3 conv.,
256
3x3 conv.,
256
3x3 conv.,
512
3x3 conv.,
512
3x3 conv.,
512
3x3 conv.,
512
3x3 conv.,
512
3x3 conv.,
512
3x3

Figura 1: A figura à esquerda mostra duas estruturas de rede. A figura da direita visualiza a norma l1 média dos filtros ao
longo da dimensão do canal em um VGG16 aprendido.

1, nem todas as listras em um filtro contribuem igualmente [13]. Algumas distribuições têm uma norma l1 muito baixa , indicando
que tais distribuições podem ser removidas da rede. A forma que mantém a função do filtro deixando o menor número de listras é
chamada de forma ótima. Para capturar a 'forma do filtro' juntamente com os pesos do filtro, propomos o 'Esqueleto do Filtro (FS)'
para aprender essa propriedade de 'forma' e usar o FS para guiar a poda eficiente (ou seja, aprender a forma ideal) (consulte a Seção 3).
Em comparação com a poda tradicional baseada em FP, esse paradigma de poda atinge uma granularidade mais fina, pois operamos
com listras em vez de todo o filtro.

Da mesma forma, a poda por grupo, introduzida em [14, 15, 16] também alcança uma granularidade mais fina do que a poda de filtro/
canal, que remove os pesos localizados na mesma posição entre todos os filtros em uma determinada camada. No entanto, a remoção
por grupo quebra a suposição independente nos filtros. Por exemplo, as posições inválidas dos pesos em cada filtro podem ser
diferentes. Ao regularizar a rede usando poda por grupo, a rede pode perder a capacidade de representação sob uma grande taxa de
poda (consulte a Seção 4.2). Neste artigo, também oferecemos uma comparação com a poda em grupo no experimento. Em contraste,
o SWP mantém cada filtro independente entre si, o que não quebra a suposição de independência entre os filtros. Ao longo dos
experimentos, o SWP atinge uma taxa de remoção mais alta em comparação com os métodos de remoção por filtro, canal e grupo.
Resumimos nossas principais contribuições abaixo:

• Propomos um novo paradigma de poda chamado SWP. O SWP atinge um granular mais fino do que a poda de filtro
tradicional e a rede podada ainda pode ser inferida com eficiência.

• Apresentamos o Filter Skeleton (FS) para aprender com eficiência a forma de cada filtro e analisar profundamente o
mecanismo de trabalho do FS. Usando FS, alcançamos a taxa de corte de última geração nos conjuntos de dados CIFAR-10
e ImageNet sem queda de precisão óbvia.

2. Trabalho relacionado

Poda de peso: A poda de peso (WP) remonta ao dano cerebral ideal e ao cirurgião cerebral ideal [17, 18], que podam
pesos com base no Hessian da função de perda. [5] poda os pesos da rede com base no critério da norma l1 e retreina a
rede para restaurar o desempenho e essa técnica pode ser incorporada ao pipeline de compressão profunda por meio de
poda, quantização e codificação de Huffman [6]. [19] reduz a complexidade da rede fazendo poda de conexão on-the-fly,
que incorpora emendas de conexão em todo o processo para evitar poda incorreta e torná-la uma manutenção contínua da
rede. [20] remove conexões em cada camada DNN resolvendo um programa de otimização convexa. Este programa busca
um conjunto esparso de pesos em cada camada que mantenha as entradas e saídas da camada consistentes com o
modelo originalmente treinado. [21] propõe um esquema de poda dinâmica no domínio da frequência para explorar as
correlações espaciais na CNN. Os coeficientes no domínio da frequência são podados dinamicamente em cada iteração e
diferentes bandas de frequência são podadas discriminativamente, dada a sua importância diferente na precisão. [22] divide
cada listra em vários grupos e poda os pesos em cada grupo. No entanto, uma desvantagem desses métodos de poda não
estruturados é que as matrizes de peso resultantes são esparsas, o que não pode levar à compressão e aceleração sem
hardware/bibliotecas dedicados [23].
Poda de filtro/canal: Poda de filtro/canal (FP) poda no nível de filtro, canal ou até mesmo camada. Como a estrutura de
convolução original ainda é preservada, nenhum hardware/biblioteca dedicado é necessário para obter os benefícios.
Semelhante à poda de peso [5], [7] também adota o critério de norma l1 que poda filtros sem importância. Em vez de filtros de poda,
[8] propôs podar canais por meio da seleção de canal baseada em regressão LASSO e reconstrução de mínimos quadrados. [9]
otimiza o fator de escala ÿ na camada BN como um indicador de seleção de canal para decidir qual canal não é importante

2
Machine Translated by Google

Filtrar Em termos de canal Grupo sábio listrado

Figura 2: A visualização dos diferentes tipos de poda.

Tabela 1: Acurácia de teste de cada rede que aprende apenas a 'forma' dos filtros.
conjunto de dados Espinha dorsal Precisão do
VGG16 teste
CIFAR-10 ResNet56 79,83
MobileNetV2 83,82 83,52

e pode ser removido. [24] apresenta ThiNet que estabelece formalmente a remoção de filtro como um problema de otimização e
revela que precisamos remover filtros com base em informações estatísticas computadas de sua próxima camada, não da camada atual.
Da mesma forma, [25] otimiza o erro de reconstrução da camada de resposta final e propaga uma 'pontuação de importância' para cada
canal. [26] primeiro propõe que utilize o AutoML para compactação de modelo, que aproveita o aprendizado por reforço para fornecer a
política de compactação de modelo. [27] propõe uma abordagem de poda estruturada eficaz que, em conjunto, poda filtros, bem como outras
estruturas de maneira ponta a ponta. Especificamente, os autores introduzem uma máscara suave para dimensionar a saída dessas
estruturas, definindo uma nova função objetivo com regularização de esparsidade para alinhar a saída da linha de base e da rede com essa
máscara. [28] apresenta uma estrutura de poda regularizada orçada para CNNs profundas que se encaixam naturalmente no treinamento de
rede neural tradicional. A estrutura consiste em uma camada de mascaramento que pode ser aprendida, uma nova função objetiva com
reconhecimento de orçamento e o uso de destilação de conhecimento. [29] propõe um algoritmo de remoção de filtro global chamado Gate
Decorator, que transforma um módulo CNN simples multiplicando sua saída pelos fatores de escala de canal, ou seja, porta, e obtém
resultados de última geração no conjunto de dados CIFAR. [30, 10] analisam profundamente como a inicialização afeta a poda por meio de
extensos resultados experimentais.

Poda em grupo: [14, 15] introduz a poda em grupo, que aprende uma dispersão estruturada em redes neurais usando regularização de laço
de grupo. A poda em grupo ainda pode ser processada eficientemente usando a implementação 'im2col' como poda em filtro e em canal. [31]
explora ainda mais uma gama completa de granularidade de poda e avalia como isso afeta a precisão da previsão. [16] melhora a poda em
grupo propondo um método de regularização dinâmico. No entanto, a poda por grupo remove os pesos localizados na mesma posição entre
todos os filtros em uma determinada camada. Como as posições inválidas de cada filtro podem ser diferentes, a remoção por grupo pode
fazer com que a rede perca informações válidas. Em contraste, nossa abordagem mantém cada filtro independente um do outro, portanto,
pode levar a uma estrutura de rede mais eficiente. Diferentes tipos de poda são ilustrados na Figura 2.

Máscara na poda: O uso de uma máscara (suave) para representar a importância do componente na rede foi exaustivamente estudado no
trabalho de poda [32, 33, 34 , 35, 27, 36, 37, 9, 8]. No entanto, a maioria trabalha projetando as máscaras em termos de filtros ou canais,
poucos trabalham prestando atenção às listras. Além disso, o Filter Skeleton (FS) não é apenas uma máscara, consideramos que cada filtro
tem duas propriedades: peso e forma. FS é aprender a propriedade 'forma'. Da Seção 3.1 do artigo, a rede ainda tem um bom desempenho
aprendendo apenas a 'forma' dos filtros, mantendo o peso do filtro inicializado aleatoriamente.

3 O método proposto

3.1 Esqueleto do Filtro (FS)

FS é introduzido para aprender outra propriedade importante dos filtros junto com seu peso: a forma, que é uma matriz relacionada
às listras do filtro. Suponha que o peso Wl da l-ésima camada convolucional seja de tamanho R N×C×K×K, onde N é o

3
Machine Translated by Google

Otimizando o peso e FS dos filtros Multiplicando FS de volta ao peso

FS
C
ÿ + C +
123 123
456
789 ÿ + 456
789
+
123 123
ÿ 456 ÿ 456
N
789
ÿ +
N
789 +
123 123
456 456
789
ÿ + 789
+
123
456 N 123 N
456
789 789

Figura 3: Rastreamento e inferência com Filter Skeleton (FS).

número dos filtros, C é a dimensão do canal e K é o tamanho do kernel. Então o tamanho de FS nesta camada é R N×K×K.
Ou seja, cada valor em FS corresponde a uma faixa no filtro. FS em cada camada é inicialmente inicializado com uma matriz all-one.
Durante o treinamento, multiplicamos os pesos dos filtros por FS. Matematicamente, a perda é representada por:

L= perda(f(x, WI), y) (1)


(x,y)

, onde I representa o FS, denota produto escalar. Com I, o processo de avanço é:


C k k
l+1 = eu
× Wln,c,i,j × GG (2)
Xn ,h,w eu n, eu, j
n,h+iÿ 2
K+1
w+jÿ 2
K+1 ,
c eu
j

. O gradiente em relação a W e I é:
MH MW ÿL
grad(Wl ) = eu n,i,j
eu
× × GG (3)
n,c,i,j K+1 K+1 ,
ÿXl+1 c,h+iÿ 2 w+jÿ 2
h c n,h,w

C MH MW
ÿL
eu

)= (Wl n,c,i,j × × GG (4)


graduado(eu
n,i,j c,h+iÿ 2
K+1
,w+jÿ
K+1
2
)
ÿXl+1
c h c n,h,w

, onde MH, MW representam a altura e a largura do mapa de recursos, respectivamente. XL = 0 quando p < 1 ou p > MH
c,p,q
ou q < 1 ou q > MW (isso corresponde aos procedimentos de preenchimento e deslocamento [38, 39]).

A partir de (1), os pesos do filtro e FS são otimizados conjuntamente durante o treinamento. Após o treinamento, mesclamos I nos pesos
do filtro W(Ie, W ÿ W I) e usamos apenas W durante a avaliação. Assim, nenhum custo adicional é trazido para a rede ao aplicar a
inferência. Todo o processo é ilustrado na Figura 3. Para mostrar ainda mais a importância da propriedade 'forma', conduzimos um
experimento onde os pesos dos filtros são fixos, apenas FS pode ser otimizado durante o treinamento. Os resultados são mostrados na
Tabela 1. Pode-se ver que sem atualizar os pesos dos filtros, a rede ainda obtém resultados decentes. Também descobrimos que com o
Filter Skeleton, os pesos da rede se tornam mais estáveis. A Figura 4 exibe a distribuição dos pesos da rede de linha de base e da rede
treinada pelo Filter Skeleton (FS). Pode-se observar que os pesos treinados pelo FS são esparsos e suaves, os quais possuem uma baixa
variação para as imagens de entrada, levando a saídas estáveis.
Assim, a rede é robusta à variação dos dados de entrada ou recursos.

3.2 Poda em faixas com FS

Na Figura 1, nem todas as listras contribuem igualmente para a rede. Para construir uma rede compacta e altamente podada, o Filter
Skeleton (FS) precisa ser esparso. Ou seja, quando algum valor em FS estiver próximo de 0, as listras correspondentes podem ser
podadas. Portanto, ao treinar a rede com FS, impomos a regularização no FS para torná-la esparsa:

L= perda(f(x, WI), y) + ÿg(I) (5)


(x,y)

, onde ÿ controla a magnitude da regularização, g(I) indica penalidade de norma l1 em I, que é comumente usada em
muitas abordagens de poda [7, 8, 9]. Especificamente, g(I) é escrito como:
eu eu N k k

g(eu) = g(eu ) =
eu

( |I
eu

|). (6)
n,i,j
l=1 l=1 n=1 i=1 j=1

4
Machine Translated by Google

0
0
0
0
00
0 0

00 0
00 0

0 0
0

0 0 0 0000 0 0 0 0 000000 0 0 0 0 0000000 0

00

0 0 0 0 0 0 0
0 0000

Figura 4: Esta figura à esquerda e à direita mostra a distribuição dos pesos da linha de base e FS na primeira camada de
convolução, respectivamente. Nesta camada, cada filtro possui 9 faixas. Cada minifigura mostra a norma l1 das listras localizadas
na mesma posição de todos os filtros. A média e o padrão também são relatados.

De (5), FS aprende implicitamente a forma ótima de cada filtro. Na Seção 4.4, visualizamos a forma dos filtros para mostrar melhor
esse fenômeno. Para conduzir uma poda eficiente, definimos um limite ÿ, as listras cujos valores correspondentes em FS são
menores que ÿ não serão atualizadas durante o treinamento e poderão ser podadas posteriormente. Vale a pena notar que, ao
realizar a inferência na rede podada, não podemos usar diretamente o filtro como um todo para realizar a convolução no mapa de
recursos de entrada, pois o filtro está quebrado. Em vez disso, precisamos usar cada faixa independentemente para realizar a
convolução e somar o mapa de recursos produzido por cada faixa, conforme mostrado na Figura 5. Matematicamente, o processo
de convolução no SWP é escrito como:

C k k
l+1 = convolução padrão
Wl l×X K+1 K+1 ,
Xn ,h,w n,c,i,jn,hÿi+ 2 wÿj+ 2
c eu
j
(7)
k k C
=
( Wln,c,i,j l×X K+1
n,hÿi+ ,wÿj+ 2 2
K+1 ) listra convolução sábia
eu
j c

l+1
, onde X n,h,w é um ponto do mapa de recursos na l + 1ª camada. De (7), SWP apenas modifica a ordem de cálculo no processo
de convolução convencional, portanto nenhuma operação adicional (Flops) é adicionada à rede. Vale ressaltar que, já que cada
faixa tem sua própria posição no filtro. O SWP precisa registrar os índices de todas as distribuições.
No entanto, custa pouco em comparação com todos os parâmetros da rede. Suponha que o peso Wl da l-ésima camada
convolucional seja de tamanho R N×C×K×K. Para SWP, precisamos registrar índices N × K × K. Em comparação com o peso de
poda individual que registra os índices N × C × K × K , reduzimos o peso dos índices de poda em C vezes. Além disso, não
precisamos registrar os índices do filtro se todas as listras em tal filtro forem removidas da rede e o SWP degenerar para poda
convencional por filtro. Para uma comparação justa com os métodos tradicionais baseados em FP, adicionamos o número de
índices ao calcular o número de parâmetros de rede.

Há duas vantagens do SWP em comparação com a poda tradicional baseada em FP:

• Suponha que o tamanho do kernel seja K ×K, então SWP atinge granularidade K2× mais fina do que a poda tradicional baseada em FP,
o que leva a uma maior taxa de poda.

• Para determinados conjuntos de dados, por exemplo, CIFAR-10, a rede podada pelo SWP mantém alto desempenho
mesmo sem um processo de ajuste fino. Isso separa o SWP de muitos outros métodos de remoção baseados em FP
que requerem vários procedimentos de ajuste fino. A razão é que o FS aprende uma forma ótima para cada filtro.
Podando listras sem importância, o filtro não perde muita informação útil. Por outro lado, a poda de FP remove
diretamente os filtros que podem danificar as informações aprendidas pela rede.

5
Machine Translated by Google

1
2 ++
++
3
4
5
6
7
C + 8
9
1
+ +
2 ++
123 3
++
456
789
+ 4
5

+
6

ÿ 123
456 ÿ 7 9
+
N
789 + 9n
8
9 ÿ 1
2
1 4
123 2 ++ 4
456 3 ++ 5
789 + 4 6
5 + +
123 N 6 N
456
789 Filtrar para Stripewise 7
8
9
Podando Faixas Inválidas
12
++
3 ++
4 NN
5
6
7
8
9

Figura 5: Processo de remoção no SWP.

4 experimentos
Esta seção está organizada da seguinte forma: Na Seção 4.1, apresentamos os detalhes de implementação no artigo; Na Seção 4.2, comparamos
o SWP com a poda por grupo; Na Seção 4.3, mostramos que o SWP atinge a taxa de remoção de última geração nos conjuntos de dados
CIFAR-10 e ImageNet em comparação com a remoção por filtro, canal ou forma; Na Seção 4.4, visualizamos os filtros de remoção; Na Seção
4.5, realizamos estudos de ablação para estudar como os hiperparâmetros influenciam o SWP.

4.1 Detalhes da Implementação

Conjuntos de dados e modelos: CIFAR-10 [40] e ImageNet [41] são dois conjuntos de dados populares e são adotados em nossos experimentos.
O conjunto de dados CIFAR-10 contém 50 mil imagens de treinamento e 10 mil imagens de teste para 10 classes. O ImageNet contém 1,28
milhão de imagens de treinamento e 50 mil imagens de teste para 1.000 classes. No CIFAR-10, avaliamos nosso método em duas estruturas de
rede populares: VGG16 [42], ResNet56 [43]. No conjunto de dados ImageNet, adotamos ResNet18.

Configuração da linha de base: Nossa configuração da linha de base é consistente com [9]. Para CIFAR-10, o modelo foi treinado para 160
épocas com um tamanho de lote de 64. A taxa de aprendizado inicial é definida como 0,1 e dividida por 10 nas épocas 80 e 120. O simples
aumento de dados flip (corte aleatório e horizontal aleatório ) é usado para imagens de treinamento. Para ImageNet, seguimos a implementação
1 90 épocas com um tamanho de lote de 256. A taxa de aprendizado inicial é definida como 0,1 e a
oficial do PyTorch que treina o modelo para
divide por 10 a cada 30 épocas. As imagens são redimensionadas para 256 × 256 e, em seguida, cortam aleatoriamente uma área de 224 × 224
da imagem original para treinamento. O teste está no corte central de 224 x 224 pixels.

Configuração de SWP: A configuração de hiperparâmetros básicos é consistente com a linha de base. ÿ é definido como 1e-5 em (5) e o limite
ÿ é definido como 0,05. Para CIFAR-10, não ajustamos a rede após a seleção da faixa. Para o ImageNet, realizamos um ajuste fino único após
a remoção.

4.2 Poda em grupo vs poda em faixas

Como a poda em grupo também pode ser implementada por meio do Skeleton, realizamos a poda em grupo e o SWP, ambos com base no
Skeleton. A Figura 6 mostra os resultados. Podemos ver que com o mesmo número de parâmetros ou Flops, o SWP atinge um desempenho
superior em comparação com a poda em grupo. Também descobrimos que na remoção por grupo, layer2.7.conv1 e layer2.7.conv2 serão
identificados como inválidos (ou seja, todos os pesos em tal camada serão removidos pelo algoritmo) quando a taxa de remoção atingir 76,64%.
No entanto, esse fenômeno não aparece na poda por faixa mesmo com uma taxa de poda de 87,36%, o que confirma ainda mais nossa hipótese
de que a poda por grupo quebra a suposição independente nos filtros e pode facilmente perder a capacidade de representação. Em contraste, o
SWP mantém cada filtro independente um do outro, portanto, pode atingir uma taxa de remoção mais alta.

4.3 Comparando SWP com métodos de última geração

Comparamos o SWP com métodos de poda de última geração. A Tabela 2 e a Tabela 3 listam a comparação no CIFAR-10
e no ImageNet, respectivamente. Na Tabela 2, IR [16] é um método de remoção por grupo, os outros, exceto SWP, são
métodos por filtro ou por canal. Podemos ver que o GBN [29] supera até mesmo o método de poda por formato. Pela
nossa análise, a poda em grupo regulariza os pesos da rede nas mesmas posições entre todos os filtros, o que pode
fazer com que a rede perca informações úteis. Portanto, a poda em grupo pode não ser a melhor escolha. No entanto, o
SWP executa outros métodos por uma grande margem. Por exemplo, ao podar VGG16, o SWP pode reduzir o número
de parâmetros em 92,66% e o número de Flops em 71,16% sem perder o desempenho da rede. No ImageNet, o SWP também pode
1
https://github.com/pytorch/examples/tree/master/imagenet

6
Machine Translated by Google

Figura 6: Comparando o SWP com a poda por grupo no CIFAR-10. A espinha dorsal é VGG16.

Tabela 2: Comparando SWP com métodos baseados em FP de última geração no conjunto de dados CIFAR-10. A precisão da linha de base do ResNet56
é de 93,1% [29], enquanto a precisão da linha de base do VGG16 é de 93,25% [7].

Espinha dorsal Métricas Parâmetros(%)ÿ FLOPS(%)ÿ Precisão(%)ÿ 34,3 64,02


L1[7] (ICLR 2017) 64 41,6 -0,15
ThiNet[24] (ICCV 2017) 63,95 63,91 2,49
SSS[44] (ECCV 2018) 73,8 39,6 0,23
VGG16 SFP[45] (IJCAI 2018) 63,95 39,07 1,17
GAL[27] (CVPR 2019) 77,6 53,5 1,22
Dobradiça[46] (CVPR 2020) 80,05 71,16 -0,34
HRank [47] (CVPR 2020) 82,9 -0,18
Nosso 92,66 -0,4
L1[7] (ICLR 2017) 13.7 27,6 -0,02
- 50 1,00
CP[8] (ICCV 2017)
NISP[25] (CVPR 2018) 42,6 43,6 0,03
DCP [48] (NeurIPS 2018) 70,3 47,1 -0,01
ResNet56 - 67,7 0,4
RI[16] (IJCNN 2019)
- 60,8 -0,23
C-SGD[49] (CVPR 2019)
GBN [29] (NeurIPS 2019) 66,7 70,3 0,03
HRank [47] (CVPR 2020) 68,1 74,1 2,38
Nosso 77,7 75,6 0,12

Tabela 3: Comparando SWP com métodos de corte de última geração no conjunto de dados ImageNet. Todos os métodos usam o
ResNet18 como backbone e a precisão do top 1 e top 5 da linha de base é de 69,76% e 89,08%, respectivamente.
Espinha dorsal Métricas FLOPS(%)ÿ Top-1(%)ÿ Top-5(%)ÿ 35,57 3,43
LCCL[50] (CVPR 2017) 42,72 2,66 42,72 1,35 2,14
SFP[45] (IJCAI 2018) 0,61 0,56 -0,23 0,17 1,3
FPGM [51] (CVPR 2019) 0,6
ResNet18 TAS[52] (NeurIPS 2019) 43,47 -0,11
42,81 -
DMCP[53] (CVPR 2020)
Nossa (ÿ = 5e ÿ 6) 50,48 -0,22
Nossa (ÿ = 2e ÿ 5) 54,58 0,04

alcançar um desempenho melhor do que as abordagens de benchmark recentes. Por exemplo, o SWP pode reduzir os FLOPs em 54,58%
sem uma queda óbvia na precisão. Queremos ressaltar que apesar do SWP trazer índices de tiras, o custo é baixo. Ao realizar o cálculo do
número de parâmetros, adicionamos esses índices no cálculo da Tabela 2 e Tabela 3. A taxa de poda do SWP ainda é significativa e atinge
resultados de última geração.

7
Machine Translated by Google

Figura 7: Visualização dos filtros VGG19 podados pelo SWP. De cima para baixo, exibimos os filtros de acordo com
sua frequência nessa camada. A cor branca indica que a faixa correspondente no filtro foi removida pelo SWP.

Tabela 4: Esta tabela mostra como ÿ e ÿ afetam os resultados do SWP. O experimento é conduzido no CIFAR-10. A rede é ResNet56.

ÿ 0,8e-5 1,2e-5 1,4e-5 0,05 1e-5


0,01 0,03 0,05 0,07 0,09
0,21Flops (M)0,2
ÿ Params (M) 0,25 0,34 0,21 0,12 0,4541,23 111,68 74,83 56,10 41,59
61,16 47,71 0,1629,72
Precisão (%) 92,73 92,43 92,12 93,25 92,82 92,438 92,438 8

4.4 Visualizando os filtros aplicados

Visualizamos os filtros do VGG19 para mostrar como fica a rede esparsa após a poda por SWP. O tamanho do kernel 3 × 3 do
VGG19 é R formas, pois, Assim,
cadaexistem
faixa pode ser
9 tiras emremovida ouCada
cada filtro. preservada. Exibimos os9 filtros de cada camada de acordo com a
filtro tem 2
frequência de cada formulário. A Figura 7 mostra os resultados da visualização. Existem alguns fenômenos interessantes:

• Para cada camada, a maioria dos filtros são executados diretamente com todas as faixas.

• Nas camadas intermediárias, a maioria dos filtros preservados possui apenas uma faixa. No entanto, nas camadas próximas à entrada, a
maioria das camadas preservadas possui várias listras. Sugerindo que a redundância ocorre mais nas camadas intermediárias.

Acreditamos que esta visualização pode contribuir para uma melhor compreensão das CNNs. No passado, sempre consideramos o filtro
como a menor unidade da CNN. No entanto, de acordo com nossa experiência, a arquitetura do filtro em si também é importante e pode
ser aprendida pela remoção. Mais resultados de visualização podem ser encontrados no material suplementar.

4.5 Estudo de Ablação

Nesta seção, estudamos como diferentes hiperparâmetros afetam os resultados da poda. Estudamos principalmente o
coeficiente de ponderação ÿ em (1) e o limiar de poda ÿ. A Tabela 4 mostra os resultados experimentais. Encontramos ÿ = 1e
ÿ 5 e ÿ = 0,05, o que fornece a taxa de poda aceitável e a precisão do teste.

5. Conclusão

Neste artigo, propomos um novo paradigma de poda chamado SWP. Em vez de remover todo o filtro, o SWP considera cada filtro como
uma combinação de várias distribuições (ou seja, filtros 1 x 1 ) e realiza a remoção nas faixas. Também introduzimos o Filter Skeleton (FS)
para aprender com eficiência a forma ideal dos filtros para poda. Através de extensas experiências e análises, demonstramos a eficácia
da estrutura SWP. O trabalho futuro pode ser feito para desenvolver um regularizador mais eficiente para otimizar ainda mais as DNNs.

8
Machine Translated by Google

Agradecimentos: O trabalho foi financiado em parte pelo Shenzhen Fundamental Research Fund sob Grant
JCYJ20180306172023949, em parte pela Guangdong Basic and Applied Basic Research Foundation sob Grant
2019B1515120055, em parte pelo Shenzhen Research Institute of Big Data, em parte pelo Shenzhen Institute de
Inteligência Artificial e Robótica para a Sociedade e, em parte, pelo Laboratório de Engenharia de Percepção e
Análise de Biometria Médica, Shenzhen, China.

Referências

[1] Alex Graves, Abdel-Rahman Mohamed e Geoffrey Hinton. Reconhecimento de fala com redes neurais recorrentes profundas. Em 2013, a conferência
internacional IEEE sobre acústica, fala e processamento de sinais, páginas 6645–6649. IEEE, 2013.

[2] Alex Krizhevsky, Ilya Sutskever e Geoffrey E Hinton. Classificação de Imagenet com redes neurais convolucionais profundas. Em
Avanços em sistemas de processamento de informações neurais, páginas 1097–1105, 2012.

[3] William Lotter, Gabriel Kreiman e David Cox. Redes de codificação preditiva profunda para previsão de vídeo e não supervisionada
aprendizado. arXiv preprint arXiv:1605.08104, 2016.

[4] Xiang Zhang e Yann LeCun. Compreensão de texto do zero. arXiv preprint arXiv:1502.01710, 2015.

[5] Song Han, Jeff Pool, John Tran e William Dally. Aprendendo pesos e conexões para uma rede neural eficiente. Em
Avanços em sistemas de processamento de informações neurais, páginas 1135–1143, 2015.

[6] Song Han, Huizi Mao e William J Dally. Compactação profunda: compactando redes neurais profundas com poda, treinadas
quantização e codificação Huffman. arXiv preprint arXiv:1510.00149, 2015.

[7] Hao Li, Asim Kadav, Igor Durdanovic, Hanan Samet e Hans Peter Graf. Filtros de poda para convnets eficientes. pré-impressão do arXiv
arXiv:1608.08710, 2016.

[8] Yihui He, Xiangyu Zhang e Jian Sun. Poda de canal para acelerar redes neurais muito profundas. Em Anais do
IEEE International Conference on Computer Vision, páginas 1389–1397, 2017.

[9] Zhuang Liu, Jianguo Li, Zhiqiang Shen, Gao Huang, Shoumeng Yan e Changshui Zhang. Aprendendo redes convolucionais eficientes através do emagrecimento
da rede. Em Proceedings of the IEEE International Conference on Computer Vision, páginas 2736–2744, 2017.

[10] Zhuang Liu, Mingjie Sun, Tinghui Zhou, Gao Huang e Trevor Darrell. Repensando o valor da poda de rede. arXiv
preprint arXiv:1810.05270, 2018.

[11] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke e Andrew Rabinovich. Indo
mais fundo com convoluções. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), junho de 2015.

[12] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jon Shlens e Zbigniew Wojna. Repensando a arquitetura inicial para visão computacional. Em Anais da
conferência IEEE sobre visão computacional e reconhecimento de padrões, páginas 2818–2826, 2016.

[13] Xiaohan Ding, Yuchen Guo, Guiguang Ding e Jungong Han. Acnet: Fortalecendo os esqueletos do kernel para cnn poderoso
através de blocos de convolução assimétrica. 2019.

[14] Vadim Lebedev e Victor Lempitsky. Convnets rápidos usando dano cerebral em grupo. Nos Anais da Conferência IEEE
em Visão Computacional e Reconhecimento de Padrões, páginas 2554–2564, 2016.

[15] Wei Wen, Chunpeng Wu, Yandan Wang, Yiran Chen e Hai Li. Aprendizagem de esparsidade estruturada em redes neurais profundas. Em
Avanços em sistemas de processamento de informações neurais, páginas 2074–2082, 2016.

[16] Huan Wang, Qiming Zhang, Yuehai Wang, Lu Yu e Haoji Hu. Remoção estruturada para convnets eficientes por meio de regularização incremental. Em 2019
Conferência Conjunta Internacional sobre Redes Neurais (IJCNN), pp. 1–8. IEEE, 2019.

[17] Yann LeCun, John S Denker e Sara A Solla. Dano cerebral ideal. Em Avanços em sistemas de processamento de informações neurais,
páginas 598–605, 1990.

[18] Babak Hassibi e David G Stork. Derivadas de segunda ordem para poda de rede: Cirurgião cerebral ideal. Em avanços em
Sistemas de processamento de informações neurais, páginas 164–171, 1993.

[19] Yiwen Guo, Anbang Yao e Yurong Chen. Cirurgia de rede dinâmica para DNS eficientes. Em avanços na informação neural
sistemas de processamento, páginas 1379–1387, 2016.

[20] Alireza Aghasi, Afshin Abdi, Nam Nguyen e Justin Romberg. Net-trim: Poda convexa de redes neurais profundas com garantia de desempenho. Em Advances
in Neural Information Processing Systems, páginas 3177–3186, 2017.

[21] Zhenhua Liu, Jizheng Xu, Xiulian Peng e Ruiqin Xiong. Poda dinâmica no domínio da frequência para redes neurais convolucionais . Em Advances in Neural
Information Processing Systems, páginas 1043–1053, 2018.

[22] Hyeong-Ju Kang. Poda com reconhecimento de acelerador para redes neurais convolucionais. CoRR, abs/1804.09862, 2018.

[23] Song Han, Xingyu Liu, Huizi Mao, Jing Pu, Ardavan Pedram, Mark A Horowitz e William J Dally. Eie: motor de inferência eficiente em rede neural profunda
comprimida. ACM SIGARCH Computer Architecture News, 44(3): 243–254, 2016.

9
Machine Translated by Google

[24] Jian-Hao Luo, Jianxin Wu e Weiyao Lin. Thinet: Um método de remoção de nível de filtro para compactação de rede neural profunda. Em
Anais da conferência internacional IEEE sobre visão computacional, páginas 5058–5066, 2017.

[25] Ruichi Yu, Ang Li, Chun-Fu Chen, Jui-Hsin Lai, Vlad I Morariu, Xintong Han, Mingfei Gao, Ching-Yung Lin e Larry S Davis . Nisp: Podando redes usando
propagação de pontuação de importância de neurônio. Em Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, páginas
9194–9203, 2018.

[26] Yihui He, Ji Lin, Zhijian Liu, Hanrui Wang, Li-Jia Li e Song Han. Amc: Automl para compactação e aceleração de modelos em dispositivos móveis. In
Proceedings of the European Conference on Computer Vision (ECCV), páginas 784–800, 2018.

[27] Shaohui Lin, Rongrong Ji, Chenqian Yan, Baochang Zhang, Liujuan Cao, Qixiang Ye, Feiyue Huang e David Doermann.
Rumo à poda de cnn estruturada ideal por meio de aprendizado adversário generativo. Em Proceedings of the IEEE Conference on Computer Vision
and Pattern Recognition, páginas 2790–2799, 2019.

[28] Carl Lemaire, Andrew Achkar e Pierre-Marc Jodoin. Poda estruturada de redes neurais com regularização com base no orçamento.
Em Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, páginas 9108–9116, 2019.

[29] Zhonghui You, Kun Yan, Jinmian Ye, Meng Ma e Ping Wang. Decorador de portão: método de remoção de filtro global para acelerar redes neurais
convolucionais profundas. Em Advances in Neural Information Processing Systems, páginas 2130–2141, 2019.

[30] Jonathan Frankle e Michael Carbin. A hipótese do bilhete de loteria: encontrando redes neurais esparsas e treináveis. pré-impressão do arXiv
arXiv:1803.03635, 2018.

[31] Huizi Mao, Song Han, Jeff Pool, Wenshuo Li, Xingyu Liu, Yu Wang e William J Dally. Explorando a granularidade da dispersão em redes neurais
convolucionais. Em Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, páginas 13–20, 2017.

[32] Zehao Huang e Naiyan Wang. Seleção de estrutura esparsa orientada por dados para redes neurais profundas. CECV, 2018.

[33] Aditya Kusupati, Vivek Ramanujan, Raghav Somani, Mitchell Wortsman, Prateek Jain, Sham Kakade e Ali Farhadi.
Reparametrização de peso de limite suave para dispersão apreensível. In Proceedings of the International Conference on Machine Learning, julho de
2020.

[34] Aditya Kusupati, V. Ramanujan, Raghav Somani, Mitchell Wortsman, Prateek Jain, Sham M. Kakade e Ali Farhadi. Macio
reparametrização de peso limiar para esparsidade apreensível. ArXiv, abs/2002.03231, 2020.

[35] Kai Han, Yunhe Wang, Yixing Xu, Chunjing Xu, Dacheng Tao e Chang Xu. Filtros de pilha completa para construir cnns viáveis mínimos.
arXiv preprint arXiv:1908.02023, 2019.

[36] Ting Wu Chin, Ruizhou Ding, Cha Zhang e Diana Marculescu. Rumo a uma compactação de modelo eficiente por meio de aprendizagem global
classificação. arXiv, 2019.

[37] Carl Lemaire, Andrew Achkar e Pierre Marc Jodoin. Poda estruturada de redes neurais com regularização com base no orçamento.
2018.

[38] Bichen Wu, Alvin Wan, Xiangyu Yue, Peter Jin, Sicheng Zhao, Noah Golmant, Amir Gholaminejad, Joseph Gonzalez e
Kurt Keutzer. Shift: Um flop zero, alternativa de parâmetro zero para convoluções espaciais. 2017.

[39] Yao Lu, G. Lu, Bob Zhang, Yuanrong Xu e Jinxing Li. Redes neurais convolucionais super esparsas. Em AAAI, 2019.

[40] Alex Krizhevsky, Geoffrey Hinton, e outros. Aprendendo várias camadas de recursos de imagens minúsculas. 2009.

[41] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li e Li Fei-Fei. Imagenet: Um banco de dados hierárquico de imagens em larga escala. Em
Conferência IEEE 2009 sobre visão computacional e reconhecimento de padrões, páginas 248–255. IEEE, 2009.

[42] Karen Simonyan e Andrew Zisserman. Redes convolucionais muito profundas para reconhecimento de imagens em larga escala. pré-impressão do arXiv
arXiv:1409.1556, 2014.

[43] Kaiming He, Xiangyu Zhang, Shaoqing Ren e Jian Sun. Aprendizagem residual profunda para reconhecimento de imagem. Em Processos de
a conferência IEEE sobre visão computacional e reconhecimento de padrões, páginas 770–778, 2016.

[44] Zehao Huang e Naiyan Wang. Seleção de estrutura esparsa orientada por dados para redes neurais profundas. Em Anais do
Conferência Europeia sobre Visão Computacional (ECCV), páginas 304–320, 2018.

[45] Yang He, Guoliang Kang, Xuanyi Dong, Yanwei Fu e Yi Yang. Poda de filtro suave para acelerar redes neurais convolucionais profundas . arXiv preprint
arXiv:1808.06866, 2018.

[46] Yawei Li, Shuhang Gu, Christoph Mayer, Luc Van Gool e Radu Timofte. Esparsidade de grupo: a dobradiça entre a remoção do filtro
e decomposição para compressão de rede. arXiv preprint arXiv:2003.08935, 2020.

[47] Mingbao Lin, Rongrong Ji, Yan Wang, Yichen Zhang, Baochang Zhang, Yonghong Tian e Ling Shao. Hrank: Poda de filtro
usando o mapa de recursos de alto escalão. arXiv preprint arXiv:2002.10179, 2020.

[48] Zhuangwei Zhuang, Mingkui Tan, Bohan Zhuang, Jing Liu, Yong Guo, Qingyao Wu, Junzhou Huang e Jinhui Zhu.
Poda de canal com reconhecimento de discriminação para redes neurais profundas. Em Advances in Neural Information Processing Systems, pp. 875–
886, 2018.

[49] Xiaohan Ding, Guiguang Ding, Yuchen Guo e Jungong Han. Centrípeta sgd para podar redes convolucionais muito profundas com estrutura complicada.
Em Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, páginas 4943–4953, 2019.

10
Machine Translated by Google

[50] Xuanyi Dong, Junshi Huang, Yi Yang e Shuicheng Yan. Mais é menos: uma rede mais complicada com menos complexidade de inferência. Em
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, páginas 5840–5848, 2017.
[51] Yang He, Ping Liu, Ziwei Wang, Zhilan Hu e Yi Yang. Poda de filtro via mediana geométrica para aceleração de redes neurais convolucionais
profundas . Em Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, páginas 4340–4349, 2019.

[52] Xuanyi Dong e Yi Yang. Poda de rede por meio de pesquisa de arquitetura transformável. Em Avanços em Informação Neural
Sistemas de processamento, pp. 759–770, 2019.
[53] Shaopeng Guo, Yujie Wang, Quanquan Li e Junjie Yan. Dmcp: Poda de canal de markov diferenciável para redes neurais.
arXiv preprint arXiv:2005.03354, 2020.

11
Machine Translated by Google

Figura 8: Comparando o Filter Skeleton com o regularizador Lasso no CIFAR-10. A espinha dorsal é VGG16.

6 Material Suplementar
Este é o material complementar para o artigo 'Pruning Filter in Filter'. A Seção 6.1 mostra que podemos usar SWP para continuar podando
a rede podada por outros métodos baseados em FP (filter pruning). A Seção 6.2 mostra que o Filter Skeleton é melhor que a regularização
de laço na estrutura do SWP. A Seção 6.3 exibe mais resultados de visualização.

6.1 Poda Contínua no SWP

Como o SWP pode atingir uma granularidade mais fina do que os métodos tradicionais de remoção de filtro, podemos usar o SWP para continuar
removendo a rede removida por outros métodos sem queda de precisão óbvia. A Tabela 5 mostra os resultados experimentais. Pode-se notar que o
SWP pode ajudar outras podas baseadas em FP para taxas de poda mais altas.

Tabela 5: Esta tabela mostra métodos de remoção variantes no conjunto de dados CIFAR-10. A + B denota que primeiro remove a rede com
o método A e, em seguida, continua removendo a rede com o método B.
Espinha dorsal Métricas FLOPS (M) Params (M) linha de base da
precisão 14.72 627.36 Slimming de rede [9] 1,44 272.83 93,63
VGG16 Slimming de rede+ SWP 1,09 204.02 Linha de base 20.04 93,60
797.61 DCP [48] 10.36 398.42 DCP+ SWP 3.40 253.24 0,24 81,26 93,62
93,92
VGG19 93,6
93,4
93,1
ResNet56 92,89
92,67

Group Lasso vs 6.2 Filter Skeleton

No artigo, usamos o Filter Skeleton (FS) para aprender a forma ideal de cada filtro e podar as listras sem importância. No entanto, existem outras técnicas
para regularizar a rede para torná-la esparsa. Por exemplo, Lasso-based regularizer [15], que regulariza diretamente os pesos da rede. Oferecemos uma
comparação com o regularizador Group Lasso nesta seção. A Figura 8 mostra os resultados. Podemos ver sob o mesmo número de parâmetros ou
Flops, PFF com Filter Skeleton atinge um desempenho superior.

6.3 Mais resultados de visualização

Nesta seção, mostramos como a rede podada se parece com o SWP. A Figura 9 mostra os resultados da visualização do ResNet56 no
CIFAR-10. Pode-se observar que (1) SWP tem uma taxa de poda maior nas camadas intermediárias, por exemplo, camada 2.3 para camada
2.9. (2) A taxa de poda de cada faixa é diferente e varia em cada camada. A Tabela 6 mostra a rede comprovada no ImageNet. Por exemplo,
em layer1.1.conv2, existem 64 filtros originais cujo tamanho é 62×3×3 . Após a poda, existem 300 listras cujo tamanho é R 62x1x1
.
R A taxa de remoção nesta camada é 1 ÿ300×62×1×1
64×62×3×3
= 0,47.

12
Machine Translated by Google

Figura 9: Na figura, exibimos a proporção das faixas restantes de cada camada. Cada filtro tem 9 listras indexadas de
s1 a s9.

Tabela 6: Esta tabela mostra a estrutura do ResNet18 podado no ImageNet.


módulos de chaves (conv1):
Strip(3.324) (bn1): BatchNorm(64)
(layer1.0.conv1): Strip(64.102)
(layer1.0.bn1): BatchNorm(57)

(layer1.0.conv2): Strip(57.164)
(layer1.0.bn2): BatchNorm(64)
(layer1.1.conv1): Strip(64.175)
(layer1.1.bn1): BatchNorm(62) (layer1
.1.conv2): Strip(62.300) (layer1.1.bn2):
BatchNorm(64) (layer2.0.conv1):
Strip(64.475,stride=2) (layer2.0.bn1):
BatchNorm(119) (layer2.0.conv2):
Strip(119.636) (layer2.0.bn2):
BatchNorm(128) (layer2.1.conv1):
Strip(128.662) (layer2.1.bn1):
BatchNorm(128) (layer2 .1.conv2):
Strip(128.648) (layer2.1.bn2):
BatchNorm(128) (layer3.0.conv1):
Strip(128.995,stride=2) (layer3.0.bn1):
BatchNorm(252) (layer3.0.conv2):
Strip(252,1502) (layer3.0.bn2):
BatchNorm(256) (layer3.1.conv1):
Strip(256,1148) (layer3.1.bn1):
BatchNorm( 256)
(layer3.1.conv2): Strip(256.944)
(layer3.1.bn2): BatchNorm(256)
(layer4.0.conv1): Strip(256,1304,stride=2)
(layer4.0.bn1): BatchNorm(498)
(layer4.0.conv2): Strip(498, 2448)
(layer4.0.bn2): BatchNorm(512)
(layer4.1.conv1): Strip(512, 3111)
(layer4.1.bn1 ) ): BatchNorm(512)
(layer4.1.conv2): Strip(512, 2927)
(layer4.1.bn2): BatchNorm(512) (fc):
Linear(512,1000)

13

Você também pode gostar