keras的基本用法(三)——创建神经网络

来源:互联网 发布:it绩效考核 编辑:程序博客网 时间:2024/06/05 20:12

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

本文主要介绍Keras的一些基本用法。

  • Demo
from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activation, Conv2D, MaxPooling2D, Flattenfrom keras.optimizers import Adam# 加载数据集(X_train, y_train), (X_test, y_test) = mnist.load_data()# 数据集预处理X_train = X_train.reshape(-1, 1, 28, 28)X_test = X_test.reshape(-1, 1, 28, 28)# 将label变为向量y_train = np_utils.to_categorical(y_train, 10)y_test = np_utils.to_categorical(y_test, 10)# 构建神经网络model = Sequential()# 卷积层一model.add(Conv2D(32, kernel_size = (5, 5), strides = (1, 1), padding = 'same', activation = 'relu', input_shape = (1, 28, 28)))# 池化层一model.add(MaxPooling2D(pool_size = (2, 2), strides = (1, 1), padding = 'same'))# 卷积层二model.add(Conv2D(64, kernel_size = (5, 5), strides = (1, 1), padding = 'same', activation = 'relu'))# 池化层二model.add(MaxPooling2D(pool_size = (2, 2), strides = (1, 1), padding = 'same'))# 全连接层一model.add(Flatten())model.add(Dense(1024))model.add(Activation('relu'))# 全连接层二model.add(Dense(10))model.add(Activation('softmax'))# 选择并定义优化求解方法adam = Adam(lr = 1e-4)# 选择损失函数、求解方法、度量方法model.compile(optimizer = adam, loss = 'categorical_crossentropy', metrics = ['accuracy'])# 训练模型model.fit(X_train, y_train, epochs = 2, batch_size = 32)# 评估模型loss, accuracy = model.evaluate(X_test, y_test)print ''print 'loss: ', lossprint 'accuracy: ', accuracy
  • 结果
Using TensorFlow backend.Epoch 1/260000/60000 [==============================] - 55s - loss: 0.4141 - acc: 0.9234Epoch 2/260000/60000 [==============================] - 56s - loss: 0.0743 - acc: 0.9770 9920/10000 [============================>.] - ETA: 0sloss:  0.103529265788accuracy:  0.9711
0 0