mnist手写数字识别keras CNN小结

keras里面本身就有很多demo,CNN的demo是MNIST手写数字识别,keras也内置了很多数据集,MNIST中的手写数字是28*28*1的灰度值图像,60000的training sample,10000的test sample,预处理方面对0-255的灰度值进行了归一化normalization,网络结构是
conv(relu)
conv(relu)
maxpooling
dropout
flatten
dense
dropout
dense(10,softmax)

keras用起来很简单,初始化一个model = Sequential(),Sequential就是各个layer串联stack在一起,通过model.add(定义层),定义层,形如Conv2D(32, kernel_size=(3,3), activation='relu', input_shape = input_shape),第一层需指定input_shape,也就是这个问题中28*28*1,2D卷积层,fitter 3*3,relu函数做卷积

接下来是模型编译compile,模型编译至少要有损失函数和优化求解算法,在手写数字识别中还有一个参数是metrics,这个应该是后续模型fit和evaluate中会打印出来的指标

compile后就是fit

最后可以evaluate
或者predict_prob

留言

熱門文章