【机器学习】李宏毅机器学习-Keras-Demo-神经网络手写数字识别与调参
参考:
原视频:李宏毅机器学习-Keras-Demo
调参博文1:深度学习入门实践_十行搭建手写数字识别神经网络
调参博文2:手写数字识别---demo(有小错误)
代码链接:
编程环境:
操作系统:win7 - CPU
anaconda-Python3-jupyter notebook
tersonFlow:1.10.0
Keras:2.2.4
背景:
视频里宝可梦大师提供的部分参数设置不能得到好的结果,这里记录一下后续调参
1-载入数据报错的问题:
载入数据运行时报错:[WinError 10054] 远程主机强迫关闭了一个现有的连接
解决方案详情参考博文:【问题解决方案】Keras手写数字识别-ConnectionResetError: [WinError 10054]
后续是:最终仍然报错,没办法只好搭梯子硬着头皮在线载入数据,最后也成了,赞啦~
2-测试程序是否正常
打印一下某个矩阵的形状,没有报错一切正常
3-运行原始代码
按照李宏毅老师视频里讲的全是坑代码运行看看效果
4-对神经网络进行调参
改动地方主要为:
激励函数由sigmoid改为relu
loss function由mse改为categorical_crossentropy
增加了Dropout,防止过拟合
改动后的代码为
# 选model
model = Sequential()
# 搭建神经网络
# 改动:4点
# 1-中间层units由633改为700
# 2-激活函数由sigmoid改为relu
# 3-原四个Dense,删去一个中间层,只留三个Dense
# 4-在三个Dense的每两个Dense中间加入Dropout
# batch-epochs=100,20时,三Dense好于四Dense
# batch-epochs=1,2时,三Dense好于四Dense
model.add(Dense(input_dim=28*28, units=700, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(units=700, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(units=10, activation='softmax'))
# 自选loss Function等参数
# 改动:1点
# 1-loss function由mse改为categorical_crossentropy
model.compile(loss='mse', optimizer=SGD(lr=0.1), metrics=['accuracy'])
# train模型
# 改动:1点
# 1-参数列表最后加一个validation_split(交叉验证?)
# 2-batch-size=1, epochs=2时,acc变为0.9314(3个Dense),0.9212(4个Dense)
model.fit(x_train, y_train, batch_size=1, epochs=2, validation_split=0.05)
# 测试结果,并打印accuracy
result = model.evaluate(x_test, y_test)
print('\nTest loss:', result[0])
print('\nAccuracy:', result[1])
5-结果分析
貌似相同参数,不同train回合,得到的结果还有细微的差别。。。
总结:
无论如何,总算DL-hello world达成了,好的开始就是成功的一半,再接再厉!
END
【机器学习】李宏毅机器学习-Keras-Demo-神经网络手写数字识别与调参的更多相关文章
- 基于Numpy的神经网络+手写数字识别
基于Numpy的神经网络+手写数字识别 本文代码来自Tariq Rashid所著<Python神经网络编程> 代码分为三个部分,框架如下所示: # neural network class ...
- TensorFlow 卷积神经网络手写数字识别数据集介绍
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 手写数字识别 接下来将会以 MNIST 数据集为例,使用卷积层和池 ...
- 深度学习-使用cuda加速卷积神经网络-手写数字识别准确率99.7%
源码和运行结果 cuda:https://github.com/zhxfl/CUDA-CNN C语言版本参考自:http://eric-yuan.me/ 针对著名手写数字识别的库mnist,准确率是9 ...
- 吴裕雄--天生自然python机器学习:基于支持向量机SVM的手写数字识别
from numpy import * def img2vector(filename): returnVect = zeros((1,1024)) fr = open(filename) for i ...
- 深度学习(一):Python神经网络——手写数字识别
声明:本文章为阅读书籍<Python神经网络编程>而来,代码与书中略有差异,书籍封面: 源码 若要本地运行,请更改源码中图片与数据集的位置,环境为 Python3.6x. 1 import ...
- 神经网络手写数字识别numpy实现
本文摘自Michael Nielsen的Neural Network and Deep Learning,该书的github网址为:https://github.com/mnielsen/neural ...
- TensorFlow.NET机器学习入门【5】采用神经网络实现手写数字识别(MNIST)
从这篇文章开始,终于要干点正儿八经的工作了,前面都是准备工作.这次我们要解决机器学习的经典问题,MNIST手写数字识别. 首先介绍一下数据集.请首先解压:TF_Net\Asset\mnist_png. ...
- 机器学习(二)-kNN手写数字识别
一.kNN算法是机器学习的入门算法,其中不涉及训练,主要思想是计算待测点和参照点的距离,选取距离较近的参照点的类别作为待测点的的类别. 1,距离可以是欧式距离,夹角余弦距离等等. 2,k值不能选择太大 ...
- 机器学习初探(手写数字识别)matlab读取数据集
手写数字识别是机器学习里面的一个经典问题,今天就这一段时间学习的机器学习,花一个下午茶的时间,试试机器学习. 首先数据库是在MNIST(http://yann.lecun.com/exdb/mnist ...
随机推荐
- maven用途、核心概念、用法、常用参数和命令、扩展
设置问题解决. http://trinea.iteye.com/blog/1290898 本文由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Buil ...
- JSF中使用f:ajax标签无刷新页面改变数据
ajax本是用在前端的一种异步请求数据的操作,广泛用于js中,一般的js框架如jq都有被封装好的方法,用于发起异步请求操作.异步操作可以增强用户体验和操作,越来越多的程序都在使用ajax.JSF的fa ...
- Day2-Python基础2---浅copy、深copy的差别
浅copy 首先我们来看下面一段代码: 1 >>> names = ["maqing"," peilin"," xiaoming&q ...
- 2016第十三届浙江省赛 D - The Lucky Week
D - The Lucky Week Edward, the headmaster of the Marjar University, is very busy every day and alway ...
- L2-004. 这是二叉搜索树吗?(前序转后序递归)
L2-004. 这是二叉搜索树吗? 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一棵二叉搜索树可被递归地定义为具有下列性质的 ...
- 9个步骤:教你设计出优秀的MMORPG副本关卡
转自:http://www.gameres.com/664485.html 副本的定义 以一张场景地图为原型,针对单个玩家.队伍或者团队生成的一个实例,包含完整的开启关闭.怪物刷新.进度记录等逻辑. ...
- windows下python访问ipv6报错
错误 Traceback (most recent call last): File , in <module> app.run() File , in run return wsgi.r ...
- hibernate 单元测试
单元测试 测试 dao service action package com.kaishengit.test; import org.hibernate.Session; import com.ka ...
- Linux常用的编辑保存退出命令
Vi Vim进入编辑后退出 按ESC后 1.保存退出 :wq :x 最快捷的方法:直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出了,即是按2下大写的Z.区别::wq 强制性写入文件并 ...
- java反射专题三
一丶调用运行时类中指定的属性 Class clazz = Person.class; //1.获取指定的属性 Field name = clazz.getField("name") ...