keras:1)初体验-MLP神经网络实现MNIST手写识别
2017-07-12 15:08
1266 查看
Keras是基于Theano和TensorFlow的深度学习库,具体介绍请参考
官方网:https://keras.io/
中文文档:http://keras-cn.readthedocs.io/en/latest/
先贴出官方在Git的源码例子minist_mlp,可以和之前对应的tensorflow博文tensorflow:1)简单的神经网络对比学习
Q1:
源码需要下载10MB大小的MNIST数据集,但是国内好像下载不来(原因,你懂得) ,下面提供mnist.npz下载地址。但注意需放到~.keras\datasets目录下,比如win10的C:\Users\Javis.keras\datasets
Q2:
可以先看下这个类的注释说明:
注释非常给力,densely-connected就是之前说是的全连接层
Q3:
可以显示网络的结构,很人性化有木有
官方网:https://keras.io/
中文文档:http://keras-cn.readthedocs.io/en/latest/
先贴出官方在Git的源码例子minist_mlp,可以和之前对应的tensorflow博文tensorflow:1)简单的神经网络对比学习
'''Trains a simple deep NN on the MNIST dataset. Gets to 98.40% test accuracy after 20 epochs (there is *a lot* of margin for parameter tuning). 2 seconds per epoch on a K520 GPU. ''' from __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop batch_size = 128 num_classes = 10 epochs = 20 # the data, shuffled and split between train and test sets (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.reshape(60000, 784) x_test = x_test.reshape(10000, 784) x_train = x_train.astype('float32') x_test = x_test.astype('float32') #除以255,把数据正则化到0~1之间 x_train /= 255 x_test /= 255 print(x_train.shape[0], 'train samples') print(x_test.shape[0], 'test samples') # convert class vectors to binary class matrices y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(10, activation='softmax')) model.summary() model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) #verbose=1可以显示每一步的信息 history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1) score = model.evaluate(x_test, y_test, verbose=0) print('Test loss:', score[0]) print('Test accuracy:', score[1])
Q1:
源码需要下载10MB大小的MNIST数据集,但是国内好像下载不来(原因,你懂得) ,下面提供mnist.npz下载地址。但注意需放到~.keras\datasets目录下,比如win10的C:\Users\Javis.keras\datasets
Q2:
Dense(512, activation='relu', input_shape=(784,))
可以先看下这个类的注释说明:
"""Just your regular densely-connected NN layer. `Dense` implements the operation: `output = activation(dot(input, kernel) + bias)` where `activation` is the element-wise activation function passed as the `activation` argument, `kernel` is a weights matrix created by the layer, and `bias` is a bias vector created by the layer (only applicable if `use_bias` is `True`). Note: if the input to the layer has a rank greater than 2, then it is flattened prior to the initial dot product with `kernel`. # Example ```python # as first layer in a sequential model: model = Sequential() model.add(Dense(32, input_shape=(16,))) # now the model will take as input arrays of shape (*, 16) # and output arrays of shape (*, 32) # after the first layer, you don't need to specify # the size of the input anymore: model.add(Dense(32))
注释非常给力,densely-connected就是之前说是的全连接层
Q3:
model.summary()
可以显示网络的结构,很人性化有木有
_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense_1 (Dense) (None, 512) 401920 _________________________________________________________________ dropout_1 (Dropout) (None, 512) 0 _________________________________________________________________ dense_2 (Dense) (None, 512) 262656 _________________________________________________________________ dropout_2 (Dropout) (None, 512) 0 _________________________________________________________________ dense_3 (Dense) (None, 10) 5130 =================================================================
相关文章推荐
- 深度学习-传统神经网络使用TensorFlow框架实现MNIST手写数字识别
- 神经网络_多层感知机MLP_以mnist为例(tensorflow和keras实现)
- tensorflow 学习笔记12 循环神经网络RNN LSTM结构实现MNIST手写识别
- 利用tensorflow一步一步实现基于MNIST 数据集进行手写数字识别的神经网络,逻辑回归
- 神经网络学习(七)MNIST手写字识别 --- Python实现
- 神经网络学习(六)MNIST手写字识别 --- Matlab实现
- tensorflow 学习笔记7 普通神经网络实现mnist手写识别
- Python神经网络代码识别手写字的实现流程(一):加载mnist数据
- 如何用Tensorflow实现增强版本的Mnist手写识别网络模型
- 深度学习笔记——TensorFlow学习笔记(三)使用TensorFlow实现的神经网络进行MNIST手写体数字识别
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 神经网络与深度学习 使用Python实现基于梯度下降算法的神经网络和自制仿MNIST数据集的手写数字分类可视化程序 web版本
- 神经网络实现手写字符识别系统
- 使用Keras构建神经网络进行Mnist手写字体分类
- Python实现深度学习之-神经网络识别手写数字(更新中,更新日期:2017-07-12)
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 机器学习之 神经网络的实现(二)-->手写识别
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别