def build_model():
model = Sequential()
# ???????4????
model.add(ZeroPadding2D((1, 1), dim_ordering='th', input_shape=(1, 20, 20)))
model.add(Convolution2D(32, 3, 3, activation='relu'), dim_ordering='th')
model.add(ZeroPadding2D((1, 1)))
model.add(Convolution2D(32, 3, 3, activation='relu', dim_ordering='th'))
model.add(MaxPooling2D((2, 2), dim_ordering='th'))
model.add(ZeroPadding2D((1, 1)))
model.add(Convolution2D(64, 3, 3, activation='relu', dim_ordering='th'))
model.add(MaxPooling2D((2, 2), dim_ordering='th'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(64, activation='softmax'))
start = time.time()
# ??SGD + momentum
# model.compile????loss??????(????)
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(optimizer=sgd, loss='categorical_crossentropy')
# model.compile(loss="mse", optimizer="rmsprop") # mse kld # Nadam rmsprop
print "Compilation Time : ", time.time() - start
return model
评论列表
文章目录