def cnn_model():
model = Sequential()
# A Convolution2D sera a nossa camada de entrada. Podemos observar que ela possui
# 32 mapas de features com tamanho de 5 × 5 e 'relu' como funcao de ativacao.
model.add(Conv2D(32, (5, 5), input_shape=(1, 28, 28), activation='relu'))
# A camada MaxPooling2D sera nossa segunda camada onde teremos um amostragem de
# dimensoes 2 × 2.
model.add(MaxPooling2D(pool_size=(2, 2)))
# Durante a regularizacao usamos o metodo de Dropout
# excluindo 30% dos neuronios na camada, diminuindo nossa chance de overfitting.
model.add(Dropout(0.3))
# Usamos a Flatten para converter nossa matriz 2D
# numa representacao a ser processada pela fully connected.
model.add(Flatten())
# Camada fully connected com 128 neuronios e funcao de ativacao 'relu'.
model.add(Dense(128, activation='relu'))
# Nossa camada de saida possui o numero de neuronios compativel com o
# numero de classes a serem classificadas, com uma funcao de ativacao
# do tipo 'softmax'.
model.add(Dense(num_classes, activation='softmax', name='preds'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
keras-CNN-mnist.py 文件源码
python
阅读 28
收藏 0
点赞 0
评论 0
评论列表
文章目录