台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
本节课主要讲述了如何利用Keras搭建深度学习模型。Keras是基于TensorFlow封装的上层API,看上去要好用不少啊~~~
用Keras搭建深度学习法模型类似搭积木,直接贴PPT了。
Step 1: Define a set of function
上图中model=Sequential()model=Sequential()的作用是宣告一个model,DenseDense表示全连接层。激活函数的选择很多除了sigmoid外,还有softmax、softsign、relu、tanh、hard_sigmoid和linear.
Step 2: Goodness of function
上图中,损失函数采用交叉熵函数。
Step 3: Pick the best function
优化方法有很多,除了adam外,还有SGD、RMSprop、Adagrad、Adadelta、Adam、Adamax和Nadam.(好多竟然是第一次见,我屮艸芔茻。。。。
x_train是二维参数:第1维是有多少个example(比如:有10000张图片);第2维是每张图片有多少个pixel(比如:一张图有784个pixel)。
y_train是二维参数:第1维是有多少个example(比如:有10000张图片);第2维是label向量(手写数字识别是10维的label向量)。
下图形象地展示了两个参数的维度及含义。
Batch的意义
在深度学习的训练过程中,会将一定数量的example组成一个batch送给模型,让其训练,现在详细解释一下。
batch中example的选择是随机进行的,并且是深度学习框架代劳的。自己只需要定义参数就好。
若一个epoch中有100个batch,则一次epoch后会更新100次参数;20次epoch后会更新2000次参数。
若Batch_size=1,则训练的优化算法就成了随机梯度下降(SGD)。
之前的课程中提到过,SGD算法速度较快,采用的较多。那为何不把所有的batch_size都设为1呢?
再说一说batch_size大小对训练过程的影响。
如上图所示,在相同的时间内,batch_size=1或10,在相同时间内更新参数的次数可以认为相同(上图中例均为50000次)。
但是当batch_size=10时,参数更新的更稳定,而且基于并行计算其计算更快,故而把batch_size设为10了。
batch_size更大时,训练速度更快的原因是GPU的并行计算。并行计算主要是针对矩阵运算而言的。
正如上图中所示:SGD和Mini-Batch两种计算方式后者更快。可以认为并行计算10个example和单独计算1个example的时间相同。
既然batch_size越大,计算速度越快,将其设置的无限大行不行?答:不行。原因有二。其一:若batch_size无限大,GPU无法提取运算。虽然并行计算10个和1个时间差不多,但并行计算10000个就和计算1个不一样了…这属于硬件问题;其二:很容易卡到local minima或鞍点位置,导致训练无法进行。
How to use the trained model
后记:不得不说Keras的确容易用好多啊!!!
台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras相关推荐
- 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
- 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction
台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?
台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network
台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation
台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation 当网络结构很复杂时,会有大量的参数.∇L(θ)\nabla L(\theta)是百万维的向量 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning 最近几年,deep learning发展的越来越快,其应用也越来 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression
台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression 做Logistic Regression回归,需要3步. Step 1: Funct ...
最新文章
- windows 下搭建python虚拟环境
- C++类class和结构体struct区别
- 暗时间(一)设计你自己的进度条
- mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法
- python十分钟教程_简洁的十分钟Python入门教程
- 【翻译】Prometheus 2.4.0 新特性
- 【宇宙探秘】物理角度分析,蚂蚁从万米高空掉下会摔死吗?
- python 识别登陆验证码图片(完整代码)_Python 实现简单图片验证码登录
- break and continue;
- pandas中replace的用法
- 异常处理和代码复用在python自动化运维中的使用(eNSP模拟器)
- Springboot集成Activiti7
- dsp的ad标志位是什么_DSP简简单单学习之AD采样
- zen-cart修改 zencart 模板修改
- WIN11右键菜单默认展开
- 洛谷P4643 [国家集训队]阿狸和桃子的游戏
- 2022年河北专接本计算机高数一考试大纲
- 学计算机推荐的平板电脑,适合学生的平板电脑_学生平板推荐2020
- SEO之网站标题间隔符
- 在windows生成SSH秘钥连接linux远程主机
热门文章
- 输入课程信息的C语言代码,[源码和文档分享]基于C语言的课程信息管理系统
- waf 防火墙限制_Web攻击分类有哪些?防火墙WAF可以抵御哪些攻击?
- php7与mysql相关配置_PHP7连接mysql,文件配置问题
- python 使窗口前置
- 两台服务器身份验证,OAuth 2 从入门到精通(一) - 身份认证服务器
- vue.3.0 dom赋值_Vue3.0的几大新特性
- hhvm mysql_Ubuntu 14.10 安装 Nginx + MySQL + HHVM + phpMyAdmin [LNMH]
- python一些常用方法_收藏整理的一些Python常用方法和技巧
- stl标准模板库_如何在C ++ STL(标准模板库)中使用Pair
- python字符串转整数_Python连接字符串和整数