博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Keras实现CNN
阅读量:37336 次
发布时间:2020-10-03

本文共 1664 字,大约阅读时间需要 5 分钟。

1.前言

自己定义的CNN结构,基于Keras实现,处理MNIST数据集。

2.Python代码

加载相应库:

import numpy as np np.random.seed(1337)from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense,Activation,Convolution2D,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)y_train = np_utils.to_categorical(y_train,num_classes=10)y_test = np_utils.to_categorical(y_test,num_classes=10)

定义网络结构:

model=Sequential()# Conv layer 1 output shape (32,28,28)model.add(Convolution2D(nb_filter=32,nb_row=5,nb_col=5,border_mode='same',    # padding methodinput_shape=(1,28,28),))model.add(Activation('relu'))# Pooling layer 1 (max pooling) output shape (32,14,14)model.add(MaxPooling2D(pool_size=(2,2),strides=(2,2),border_mode='same',))# Conv layer 2 output shape (64,14,14)model.add(Convolution2D(64,5,5,border_mode='same'))model.add(Activation('relu'))# Pooling layer 2 (max pooling) output shape (64,7,7)model.add(MaxPooling2D(pool_size=(2,2),border_mode='same'))# Fully connected layer 1 input shape (64*7*7)=(3136)model.add(Flatten())model.add(Dense(1024))model.add(Activation('relu'))# Fully connected layer 2 to shape (10) for 10 classesmodel.add(Dense(10))model.add(Activation('softmax'))adam = Adam(lr=1e-4)model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy'])

输出结果:

print('Training----------')model.fit(X_train,y_train,nb_epoch=1,batch_size=32,)print('Testing----------')loss,accuracy = model.evaluate(X_test,y_test)print('\ntest loss:',loss)print('\naccyracy:',accuracy)

转载地址:http://gihnwy.baihongyu.com/

你可能感兴趣的文章
什么是MyBatis?
查看>>
MyBatis的优点和缺点
查看>>
#{}和${}的区别是什么?
查看>>
LeetCode题解(1508):子数组和排序后的区间和(Python)
查看>>
LeetCode题解(1509):三次操作后最大值与最小值的最小差(Python)
查看>>
LeetCode题解(1510):石子游戏IV(Python)
查看>>
LeetCode题解(1497):检查数组对是否可以被k整除(Python)
查看>>
LeetCode题解(0781):森林中的兔子(Python)
查看>>
LeetCode题解(0930):和相同的二元子数组(Python)
查看>>
LeetCode题解(0939):最小面积矩形(Python)
查看>>
LeetCode题解(0954):二倍数对数组(Python)
查看>>
LeetCode题解(0957):N天后的牢房(Python)
查看>>
LeetCode题解(0974):和可被K整除的子数组(Python)
查看>>
LeetCode题解(0981):基于时间的键值存储(Python)
查看>>
LeetCode题解(0992):K个不同呢的子数组(Python)
查看>>
LeetCode题解(1001):网格照明(Python)
查看>>
LeetCode题解(1044):最长重复子串(Python)
查看>>
LeetCode题解(1048):最长字符串链(Python)
查看>>
LeetCode题解(1072):按列翻转得到最大值等行数(Python)
查看>>
LeetCode题解(1086):前五科的均分(Python)
查看>>