大数据与云计算 | 掌握深度学习框架的应用
程序员文章站
2022-07-07 19:39:47
一、实验目的熟悉Python和numpy的基本用法掌握深度学习框架的应用二、实验内容在本机安装Anaconda或者纯Python环境,了解Python基本语法和numpy基本用法使用任意深度学习框架(TensorFlow,Keras等)实现MNIST手写数字识别*,正确率至少在90%以上*实现不用任何深度学习框架,仅使用numpy等基础库实现MNIST手写数字识别,正确率至少在85%以上三、实验过程3.1 安装Anaconda环境和PyCharm成功配置的环境如下.....
一、实验目的
- 熟悉Python和numpy的基本用法
- 掌握深度学习框架的应用
二、实验内容
- 在本机安装Anaconda或者纯Python环境,了解Python基本语法和numpy基本用法
- 使用任意深度学习框架(TensorFlow,Keras等)实现MNIST手写数字识别*,正确率至少在90%以上
- *实现不用任何深度学习框架,仅使用numpy等基础库实现MNIST手写数字识别,正确率至少在85%以上
三、实验过程
3.1 安装Anaconda环境和PyCharm
成功配置的环境如下图所示
设置Pycharm的默认解释器为Anaconda
3.2 配置TensorFlow
3.2.1 Anaconda Prompt -> 创建一个python3.5的环境,环境名称为tensorflow,然后启动tensorflow环境:activate tensorflow
3.2.2安装cpu版本的TensorFlow:pip install --upgrade --ignore-installed tensorflow
3.2.3 安装Keras:pip install keras
3.3 加载keras的mnist数据集
- # Plot ad hoc mnist instances
- from keras.datasets import mnist
- import matplotlib.pyplot as plt
- # load (downloaded if needed) the MNIST dataset
- (X_train, y_train), (X_test, y_test) = mnist.load_data()
- # plot 4 images as gray scale
- plt.subplot(221)
- plt.imshow(X_train[0], cmap=plt.get_cmap('gray'))
- plt.subplot(222)
- plt.imshow(X_train[1], cmap=plt.get_cmap('gray'))
- plt.subplot(223)
- plt.imshow(X_train[2], cmap=plt.get_cmap('gray'))
- plt.subplot(224)
- plt.imshow(X_train[3], cmap=plt.get_cmap('gray'))
- # show the plot
- plt.show()
上面的代码加载了数据集并画出了前4个图片:
编写代码:
- from keras.datasets import mnist
- import matplotlib.pyplot as plt
- (X_train, y_train), (X_test, y_test) = mnist.load_data()
- plt.subplot(331)
- plt.imshow(X_test[0], cmap=plt.get_cmap('gray'))
- plt.subplot(332)
- plt.imshow(X_train[1], cmap=plt.get_cmap('gray'))
- plt.subplot(333)
- plt.imshow(X_train[2], cmap=plt.get_cmap('gray'))
- plt.subplot(334)
- plt.imshow(X_train[3], cmap=plt.get_cmap('gray'))
- plt.subplot(335)
- plt.imshow(X_train[4], cmap=plt.get_cmap('gray'))
- plt.subplot(336)
- plt.imshow(X_train[5], cmap=plt.get_cmap('gray'))
- plt.subplot(337)
- plt.imshow(X_train[6], cmap=plt.get_cmap('gray'))
- plt.subplot(338)
- plt.imshow(X_train[7], cmap=plt.get_cmap('gray'))
- plt.subplot(339)
- plt.imshow(X_train[8], cmap=plt.get_cmap('gray'))
- plt.show()
运行结果:
3.4 编写多层感知机的baseline模型
【代码略去】
训练完成,模型的错误率为1.97%
3.5 实现卷积神经网络
【代码略去】
3.5.6 训练完成,模型的错误率为0.88%,相比于单隐层神经网络有很大提升
3.6 仅使用numpy实现MNIST手写数字识别(选做)
【代码略去】
训练结果:误差14.66%,在可接受范围内
四、实验结果
- 使用单隐层神经网络实现了MNIST手写数字识别,错误率1.97%
- 使用卷积神经网络实现了MNIST手写数字识别,错误率0.88%
- 仅使用numpy实现了MNIST手写数字识别,错误率14.66%
五、体会
通过本次实验,我对Python深度学习和numpy有了更深刻的理解,掌握了单隐层神经网络、卷积神经网络、numpy实现MNIST手写数字识别模型的构建与训练,对大数据与云计算的功能与原理有了进一步的了解。
本文地址:https://blog.csdn.net/lee1hong/article/details/107137210
上一篇: 求乘法逆元的几种姿势
下一篇: Go语言数组定义与初始化方式