Na aula sobre o número de camadas, a perda de eficiência na rede se dá pelo execução da normalização repetidas vezes?
Na aula sobre o número de camadas, a perda de eficiência na rede se dá pelo execução da normalização repetidas vezes?
Olá Marco.
Exatamente, infelizmente por a normalização estar ocorrendo toda vez que treinamos o modelo os nossos resultados foram prejudicados.
Para resolver isso, basta colocar a normalização em outra célula e/ou criar uma nova variável, essa que vai salvar os nossos dados de treino já normalizados.
imagens_treino_normalizado = imagens_treino/ float(255)
E na célula seguinte temos apenas a criação e treinamento do modelo.
modelo = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(256, activation=tensorflow.nn.relu),
keras.layers.Dense(128, activation=tensorflow.nn.relu),
keras.layers.Dense(64, activation=tensorflow.nn.relu),
keras.layers.Dense(10, activation=tensorflow.nn.softmax)
])
modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy')
modelo.fit(imagens_treino_normalizado, identificacoes_treino)
Fiz alguns testes para ver a diferença que essa separação fez:
modelo = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(256, activation=tensorflow.nn.relu),
keras.layers.Dense(10, activation=tensorflow.nn.softmax)
])
modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy')
modelo.fit(imagens_treino_normalizado, identificacoes_treino)
modelo = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(256, activation=tensorflow.nn.relu),
keras.layers.Dense(128, activation=tensorflow.nn.relu),
keras.layers.Dense(10, activation=tensorflow.nn.softmax)
])
modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy')
modelo.fit(imagens_treino_normalizado, identificacoes_treino)
modelo = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(256, activation=tensorflow.nn.relu),
keras.layers.Dense(128, activation=tensorflow.nn.relu),
keras.layers.Dense(64, activation=tensorflow.nn.relu),
keras.layers.Dense(10, activation=tensorflow.nn.softmax)
])
modelo.compile(optimizer='adam',
loss='sparse_categorical_crossentropy')
modelo.fit(imagens_treino_normalizado, identificacoes_treino)
Com esses resultados conseguimos medir que o tempo de treinamento realmente aumentou e também que aumentar o numero de camadas não necessariamente vai diminuir nossa perda.
Espero ter ajudado, qualquer duvida não hesite em perguntar.
Bons Estudos.