Keras CNN 数字识别
来源:互联网 发布:淘宝单一天能刷多少单 编辑:程序博客网 时间:2024/05/16 06:08
难点是版本变化后 方法不再匹配 ,同时每个方法具体意义需要揣摩# Larger CNN for the MNIST Dataset# 2.Negative dimension size caused by subtracting 5 from 1 for 'conv2d_4/convolution' (op: 'Conv2D') with input shapes# 3.UserWarning: Update your `Conv2D` call to the Keras 2 API: http://blog.csdn.net/johinieli/article/details/69222956# 4.Error when checking input: expected conv2d_1_input to have shape (None, 28, 28, 1) but got array with shape (60000, 1, 28, 28)# talk to wumi,you good .# python 3.5.4# keras.__version__ : 2.0.6# thensorflow 1.2.1# theano 0.10.0beta1# 不错的blog http://blog.csdn.net/shizhengxin123/article/details/72383728import numpyfrom keras.datasets import mnistfrom keras.models import Sequentialfrom keras.layers import Densefrom keras.layers import Dropoutfrom keras.layers import Flattenfrom keras.layers.convolutional import Conv2Dfrom keras.layers.convolutional import MaxPooling2Dfrom keras.utils import np_utilsimport matplotlib.pyplot as pltfrom keras.constraints import maxnormfrom keras.optimizers import SGD# fix random seed for reproducibilityseed = 7numpy.random.seed(seed)# load data(X_train, y_train), (X_test, y_test) = mnist.load_data()# reshape to be [samples][pixels][width][height]X_train = X_train.reshape(X_train.shape[0], 28, 28,1).astype('float32')X_test = X_test.reshape(X_test.shape[0],28, 28,1).astype('float32')#X_train = X_train.reshape(X_train.shape[0], 1, 28, 28).astype('float32')#X_test = X_test.reshape(X_test.shape[0], 1, 28, 28).astype('float32') <---4 # normalize inputs from 0-255 to 0-1X_train = X_train / 255X_test = X_test / 255# one hot encode outputsy_train = np_utils.to_categorical(y_train)y_test = np_utils.to_categorical(y_test)num_classes = y_test.shape[1]###raw# define the larger modeldef larger_model(): # create model model = Sequential() model.add(Conv2D(30, (5, 5), padding='valid', input_shape=(28, 28,1), activation='relu'))#model.add(Conv2D(30, (5, 5), padding='valid', input_shape=(28, 28,1), activation='relu')) <----3,2 model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.4)) model.add(Conv2D(15, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.4)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.4)) model.add(Dense(50, activation='relu')) model.add(Dropout(0.4)) model.add(Dense(num_classes, activation='softmax')) # Compile model model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) return model# build the modelmodel = larger_model()# Fit the modelmodel.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=10, batch_size=200, verbose=2) # epochs 200 too bigger#model.fit(X_train, y_train, validation_data=(X_test, y_test), nb_epoch=200, batch_size=200, verbose=2)# Final evaluation of the modelscores = model.evaluate(X_test, y_test, verbose=0)print("Large CNN Error: %.2f%%" % (100-scores[1]*100))scores1 = model.evaluate(X_test[0], y_test[0], verbose=0)print(scores1)
阅读全文
0 0
- Keras CNN 数字识别
- Keras入门课2 -- 使用CNN识别mnist手写数字
- CNN 手写数字识别
- keras 实现CNN 进行手写字符识别
- Keras入门例子:cnn实现手写识别
- keras 入门 --手写数字识别
- cnn 手写数字识别 mnist
- TensorFlow-3 CNN数字识别
- cnn实现手写数字识别
- Keras 浅尝之MNIST手写数字识别
- keras入门实战:手写数字识别
- keras解决kaggle-手写体数字识别
- 利用keras(tensorflow) 做cnn mnist识别
- Keras/Theano/OpenCV实现的CNN手势识别
- 利用keras框架cnn+ctc_loss识别不定长字符图片
- 卷积神经网络CNN——使用keras识别猫咪
- 利用keras(tensorflow) 做cnn mnist识别
- Keras入门课3 -- 使用CNN识别cifar10数据集
- 分布式设计与开发
- Unity渲染路径(Rendering Paths)
- 负载均衡原理与技术实现
- Linux内核(一)
- springmvc转换器配置
- Keras CNN 数字识别
- 内存泄漏与内存溢出区别
- java自动发送邮件实例
- 主键约束与外键约束
- word2vec知识点原理详细讲解
- Java基础总结---String
- 模拟百万级TCP并发
- 清除浮动的方法
- 使用WEPE一键安装系统