我是靠谱客的博主 狂野母鸡,最近开发中收集的这篇文章主要介绍深度学习 实验四 Keras基础与简单应用深度学习 实验四 Keras基础与简单应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 深度学习 实验四 Keras基础与简单应用
    • 一、问题描述
    • 二、设计简要描述
    • 三、程序清单

深度学习 实验四 Keras基础与简单应用

一、问题描述

搭建Keras开发环境,掌握基于TensorFlow的高级API框架Keras的基本用法,通过MNIST手写数字体数据集,搭建基于Keras API的神经网络,并用来识别手写数字体。

二、设计简要描述

1. 导入模块

导入实验所需的相关模块——datasets模块中导入数据集mnist模块、layer.core模块导入Dense和Activation模块、optimizers 模块导入SGD模块、utils模块导入np_utils模块、models模块导入Sequential和Model。

2. 数据预处理

2.1 通过mnist模块的load_data方法加载训练集和测试集。

2.2 利用numpy模块的reshape方法重塑训练集和测试集的形状,适用实验训练。

2.3 为了方便神经网络的计算,对X_train和X_test的数据进行归一化,从0255的取值压缩到01之间。

2.4 通过utils模块的to_categorical方法对y_train和y_test的one-hot编码。

3. 搭建神经网络

3.1 添加层

使用序列模型(即Sequential模型)搭建最简单的神经网络——感知机训练模型。

3.2 编译神经网络

通过model对象的compile方法来对模型进行编译。

3.3 训练神经网络

用model对象的fit方法进行模型的训练。

3.4 评估神经网络

使用model对象的evaluate方法来评估模型,并将evaluate的返回值保存到变量score中,然后打印score的第一项和第二项值,查看总的损失值和准确率。

4. 优化神经网络

调整神经网络中的模型构建——适当增加隐藏层、更改隐藏层的节点数、更换激活函数和对训练时参数调整进一步优化神经网络,提高测试的准确率。

三、程序清单

# coding: utf-8

# 导包
from keras.datasets import mnist
from keras.layers.core import Dense,Activation,Dropout
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.models import Sequential, Model

# 1.数据预处理
# 1.1 加载训练集和测试集
(X_train,y_train),(X_test,y_test) = mnist.load_data()

print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)

# 1.2 重塑训练集和测试集的形状
X_train = X_train.reshape(60000, 784)
X_test = X_test.reshape(10000, 784)
X_train = X_train.astype(dtype='float32')
X_test = X_test.astype(dtype='float32')

print(X_train.shape)
print(X_test.shape)
print(X_train.dtype)
print(X_test.dtype)

# 1.3 归一化,从0~255的取值压缩到0~1之间
X_train /= 255
X_test /= 255

# 1.4 one-hot编码
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)

# 2. 搭建神经网络
# 2.1 添加层
model = Sequential()
model.add(Dense(10, input_shape=(784,)))
model.add(Activation('softmax'))

model.summary()

# 2.2 编译神经网络
model.compile(loss = 'categorical_crossentropy',
             optimizer = 'SGD',
             metrics=['accuracy'])

# 2.3 训练神经网络
history = model.fit(X_train, y_train, batch_size=128, epochs=200, verbose=1, validation_split=0.2)

# 2.4 评估神经网络
score = model.evaluate(X_test, y_test, verbose=1)
print('Test score:', score[0])
print('Test accuracy:', score[1])

# 3. 优化神经网络
# 3.1 模型改进
model2 = Sequential()
model2.add(Dense(128, input_shape=(784,)))
model2.add(Activation('softmax'))
model2.add(Dense(128))
model2.add(Activation('relu'))
model2.add(Dense(10))
model2.add(Activation('softmax'))

model2.summary()

# 3.2 编译神经网络
model2.compile(loss = 'categorical_crossentropy',
             optimizer = 'SGD',
             metrics=['accuracy'])

# 3.3 训练神经网络
history = model2.fit(X_train, y_train, batch_size=128, epochs=20, verbose=1, validation_split=0.2)

# 3.4 评估神经网络
score = model2.evaluate(X_test, y_test, verbose=1)
print('Test score:', score[0])
print('Test accuracy:', score[1])

# 4. 模型优化2
# 4.1 模型改进
model3 = Sequential()
model3.add(Dense(512, input_shape=(784,)))
model3.add(Activation('relu'))
model3.add(Dropout(0.2))
model3.add(Dense(512))
model3.add(Activation('relu'))
model3.add(Dropout(0.2))
model3.add(Dense(10))
model3.add(Activation('softmax'))

model3.summary()

# 4.2 编译神经网络
model3.compile(loss = 'categorical_crossentropy',
             optimizer = 'rmsprop',
             metrics=['accuracy'])

# 4.3 训练神经网络
history = model3.fit(X_train, y_train, epochs=10, batch_size=128,
                   verbose = 1, validation_data=[X_test, y_test])

# 4.4 评估神经网络
score = model3.evaluate(X_test, y_test, verbose = 0)
print('Test score:', score[0])
print('Test accuracy:', score[1])

最后

以上就是狂野母鸡为你收集整理的深度学习 实验四 Keras基础与简单应用深度学习 实验四 Keras基础与简单应用的全部内容,希望文章能够帮你解决深度学习 实验四 Keras基础与简单应用深度学习 实验四 Keras基础与简单应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部