深度学习--Keras总结

Keras主要包括14个模块,本文主要对Models、layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics共计8个模块分别展开介绍,并通过一个简单的Bp神经网络说明各个模块的作用。 
1. Model 
包:keras.models 
这是Keras中最主要的一个模块,用于对各个组件进行组装 
eg:


 
 
  1. from keras.models import Sequential
  2. model=Sequential() #初始化模型
  3. model.add(...) #可使用add方法组装组件

2. layers 
包:keras.layers 
该模块主要用于生成神经网络层,包含多种类型,如Core layers、Convolutional layers等 
eg:


 
 
  1. from keras.layers import Dense #Dense表示Bp层
  2. model.add(Dense(input_dim= 3,output_dim= 5)) #加入隐含层

3. Initializations 
包:keras.initializations 
该模块主要负责对模型参数(权重)进行初始化,初始化方法包括:uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等 
详细说明:http://keras.io/initializations/ 
eg:

model.add(Dense(input_dim=3,output_dim=5,init='uniform')) #加入带初始化(uniform)的隐含层

 
 

4. Activations 
包:keras.activations、keras.layers.advanced_activations(新激活函数) 
该模块主要负责为神经层附加激活函数,如linear、sigmoid、hard_sigmoid、tanh、softplus、relu、 softplus以及LeakyReLU等比较新的激活函数 
详细说明:http://keras.io/activations/ 
eg:

model.add(Dense(input_dim=3,output_dim=5,activation='sigmoid')) 加入带激活函数(sigmoid)的隐含层

 
 

Equal to:


 
 
  1. model. add(Dense(input_dim= 3,output_dim= 5))
  2. model. add(Activation( 'sigmoid'))

5. Objectives 
包:keras.objectives 
该模块主要负责为神经网络附加损失函数,即目标函数。如mean_squared_error,mean_absolute_error ,squared_hinge,hinge,binary_crossentropy,categorical_crossentropy等,其中binary_crossentropy,categorical_crossentropy是指logloss 
注:目标函数的设定是在模型编译阶段 
详细说明:http://keras.io/objectives/ 
eg:

 model.compile(loss='binary_crossentropy', optimizer='sgd') #loss是指目标函数

 
 

6. Optimizers 
包:keras.optimizers 
该模块主要负责设定神经网络的优化方法,如sgd。 
注:优化函数的设定是在模型编译阶段 
详细说明:http://keras.io/optimizers/ 
eg:

model.compile(loss='binary_crossentropy', optimizer='sgd') #optimizer是指优化方法

 
 

7. Preprocessing 
包:keras.preprocessing.(image\sequence\text) 
数据预处理模块,不过本人目前尚未用过 
8. metrics 
包:keras.metrics 
与sklearn中metrics包基本相同,主要包含一些如binary_accuracy、mae、mse等的评价方法 
eg:


 
 
  1. predict=model.predict_classes(test_x) #输出预测结果
  2. keras.metrics.binary_accuracy(test_y,predict) #计算预测精度

9. Bp 神经网络的简单实现


 
 
  1. from keras.models import Sequential #导入模型
  2. from keras.layers import Dense #导入bp层
  3. train_x,train_y #训练集
  4. test_x,text_y #测试集
  5. model=Sequential() #初始化模型
  6. model.add(Dense(input_dim= 3,output_dim= 3,activation= 'sigmoid',init= 'uniform'))) #添加一个隐含层,注:只是第一个隐含层需指定input_dim
  7. model.add(Dense( 1,activation= 'sigmoid')) #添加输出层
  8. model.compile(loss= 'binary_crossentropy', optimizer= 'sgd') # 编译,指定目标函数与优化方法
  9. model.fit(train_x,train_y ) # 模型训练
  10. model.evaluate(test_x,text_y ) #模型测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值