Deep learning基于theano的keras学习笔记(1)-Sequential模型

本文是关于Keras Sequential模型的学习笔记,主要介绍了如何通过Theano后端构建深度学习模型。内容涵盖模型的创建、编译和训练过程,以及Merge层的使用方法,强调了模型、策略和优化算法在深度学习中的重要性。
摘要由CSDN通过智能技术生成

最近在看keras文档,想写博客却真的无从下手(其实就是没咋学会),想想不写点笔记过段时间估计会忘得更多,所以还是记录一下吧,感觉学习keras最好的方式还是去读示例的代码,后期也有想些keras示例代码注释的想法,但是现在还是老老实实地先记录keras的基础知识吧。


《统计学习方法》中指出,机器学习的三个要素是模型,策略和优算法,这当然也适用于深度学习,而我个人觉得keras训练也是基于这三个要素的,先建立深度模型,然后选用策略(目标函数),采用优化器,编译和训练模型。

  • Sequential模型,顾名思义,就是多个网络层的线性堆叠
    建立模型有两种方式:一是向layer添加list的方式,二是通过.add()方式一层层添加(一个add为一层),具体可见如下代码
#引入Sequential,Dense,Activation
from keras.models import Sequential
from keras.layers import Dense, Activation
#向layer添加list方式
model = Sequential([Dense(32, input_dim=784),Activation('relu'),Dense(10),Activation('softmax'),])

#通过.add()方式
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
  • 输入数据shape
    Sequential只需在第一层需接受一个关于输入数据shape的参数,后面的各个层则可自动推导出中间数据的shape。
    input_shape是一个tuple类型的数据,其中也可以填入None,如果填入None则表示此位置可能是任何正整数。数据的batch大小不应包含在其中。
    传递一个batch_input_shape的关键字参数给第一层,该参数包含数据的batch大小。该参数在指定固定大小batch时比较有用。事实上,Keras在内部会通过添加一个Noneinput_shape转化为batch_input_shape
    有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定输入数据shape。一些3D的时域层支持通过参数input_diminput_length来指定输入shape
model = Sequential()
model.add(Dense(32, input_shape=(784,)))

model = Sequential()
model.add(Dense(32, batch_input_shape=(None, 784)))

model = Sequential()
model.add(Dense(32, input_dim=784))
#以上三种输入是等价的
  • 编译

    在训练模型之前,我们需要通过compile来对学习过程进行配置。compile接收三个参数:

    1. 优化器optimizer:已预定义的优化器名,如rmsprop、ad
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值