Compreendendo os valores de summary () (Output Shape, Param #)?
Estou verificando a saída da summaryfunção e não entendo todos os valores impressos.
Por exemplo, observe este código simples:
x = [1, 2, 3, 4, 5]
y = [1.2, 1.8, 3.5, 3.7, 5.3]
model = Sequential()
model.add(Dense(10, input_dim=1, activation='relu'))
model.add(Dense(30, input_dim=1, activation='relu'))
model.add(Dense(10, input_dim=1, activation='relu'))
model.add(Dense(1))
model.summary()
A saída:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 10) 20
_________________________________________________________________
dense_1 (Dense) (None, 30) 330
_________________________________________________________________
dense_2 (Dense) (None, 10) 310
_________________________________________________________________
dense_3 (Dense) (None, 1) 11
=================================================================
Total params: 671
Trainable params: 671
Non-trainable params: 0
_________________________________________________________________
- Por que o significado de Nenhum tem valor, abaixo da coluna
Output Shape? o que nenhum significa aqui? - Qual rede não mostrará Nenhum no resumo?
- Por que é o significado da
Params #coluna? Como esse valor é calculado?
Respostas
O None é apenas um marcador de posição dizendo que a rede pode inserir mais de uma amostra ao mesmo tempo. Nenhum significa que esta dimensão é variável. A primeira dimensão em um modelo keras é sempre o tamanho do lote. ... É por isso que esta dimensão é freqüentemente ignorada quando você define seu modelo. Por exemplo, quando você define input_shape = (100,200), na verdade você está ignorando o tamanho do lote e definindo a forma de "cada amostra".
Nonenão aparecerá se você definir um lote fixo. Por exemplo, se você enviasse um lote de 10 imagens, seu formato seria (10, 64, 64, 3) e se você alterasse para 25, você teria (25, 64, 64, 3)Para a camada densa_1 , o número de parâmetros é 20. Isso é obtido como: 10 (valores de entrada) + 10 (valores de polarização)
Para densa 2ª camada , o número de parâmetros é 330. Isso é obtido como: 10 (valores de entrada) * 30 (neurônios na segunda camada) + 30 (valores de polarização para neurônios na segunda camada)
Para dense_3ª camada , o número de parâmetros é 310. Isso é obtido como: 30 (valores de entrada) * 10 (neurônios na terceira camada) + 10 (valores de polarização para neurônios na terceira camada)
Para a camada final , o número de parâmetros é 11. Isso é obtido como: 10 (valores de entrada) * 1 (neurônios na segunda camada) + 1 (valores de polarização para neurônios na camada final)
total de parâmetros = 20 + 330 + 310 + 11 = 671