def deeper_cnn_model():
model = Sequential()
# A Convolution2D sera a nossa camada de entrada. Podemos observar que ela possui
# 30 mapas de features com tamanho de 5 × 5 e 'relu' como funcao de ativacao.
model.add(Conv2D(30, (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)))
# Uma nova camada convolucional com 15 mapas de features com dimensoes de 3 × 3
# e 'relu' como funcao de ativacao.
model.add(Conv2D(15, (3, 3), activation='relu'))
# Uma nova subamostragem com um pooling de dimensoes 2 x 2.
model.add(MaxPooling2D(pool_size=(2, 2)))
# Dropout com probabilidade de 20%
model.add(Dropout(0.2))
# Flatten preparando os dados para a camada fully connected.
model.add(Flatten())
# Camada fully connected de 128 neuronios.
model.add(Dense(128, activation='relu'))
# Seguida de uma nova camada fully connected de 64 neuronios
model.add(Dense(64, activation='relu'))
# A 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-2.0.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录