基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序

       Fashion_MNIST数据集详细介绍,请参考《Fashion-MNIST》。很多机器学习框架中都已经集成了这个数据集,包括TensorFlow。这样,我们可以通过两行代码来引用这个数据集,集中精力研究神经网络模型的开发,而不需要把时间浪费在收集数据和为数据打标上。

      用Visual Code 的Debugging(F5)功能,可以看到test_images被组织成了一个三维数组(10000,28,28),可以理解为10000张28x28像素的图像;Test_labels是一个一维数组,对应每张图片的标签。

基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序_第1张图片

Fashion_MNIST数据集的标签与对应的物体,如下所示:

基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序_第2张图片

借助matplotlib的绘图功能,可以把数据可视化出来;例如,把第8号数据展示出来

基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序_第3张图片

cmap是matplotlib的colormap,grey表示灰度图。

创建一个具有输入层为28x28个神经元,隐藏层为128个神经元,输出层为10个神经元的模型,隐藏层的激活函数为relu,输出层的激活函数为softmax.

激活函数选择参考《AI常用激活函数分析4,Relu函数与Leaky Relu函数》

Loss函数选择参考《Usage of loss functions》

基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序_第4张图片
训练数据未归一化

运行程序后,可以见到Loss值一直很高,原因是由于激活函数定义域与值域,神经网络对【0~1】的数值比较敏感,所以,我们需要把图像的灰度值从【0~255】归一化(Normalization)到【0~1】

基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序_第5张图片
归一化训练数据

下节将介绍《基于Keras CNN与Fashion_MNIST数据集开发一个深度学习程序》

参考阅读《深度学习图像识别技术》

你可能感兴趣的:(基于Keras DNN与Fashion_MNIST数据集开发一个深度学习程序)