Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,它的可读性非常强!笔者在这参考了中文文档给自己做了个小结,方便以后查阅。

认识序贯(Sequential)模型

序贯模型是深度学习中最基本的模型,从字面意思理解就是顺序排列,也就是线形叠加的结构,比如最基本的BP神经网络、VGGNet等。
实现起来很简单。
模型类包含在keras.model中,我们从其中导入Sequential,隐含层、激活函数等都在layers库里面。如下为一个简单的例子。

from keras.models import Sequential
from keras.layers import Dense, Activationmodel = Sequential([
Dense(32, units=784),#隐含层[784,32]
Activation('relu'),#激活函数
Dense(10),#隐含层[32,10]
Activation('softmax'),#激活函数
])

好,上面搭好了一个两层的BP神经网络(包含输出层),接下来我们就得定义怎么训练,装载输入数据,简单两句话搞定。

编译compile

需要配置三个参数:优化器、损失函数、指标列表。最简单的示例如下

# For a multi-class classification problem
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])

optimizer是优化器,可以用预先定义好的rmsprop等也可以自己定义。先导入optimizers库,再定义一个优化器,主要参数有学习率…不同的优化器各有不同。

from keras import optimizers
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)

自定义optimizer
from keras import optimizers
1、SGD
keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)
其中decay学习率衰减率;momentum动量;nesterov:确定是否使用Nesterov动量
2、Adam
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08)
3、RMSprop
keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-06)
4、Adagrad
keras.optimizers.Adagrad(lr=0.01, epsilon=1e-06)
5、Adadelta
keras.optimizers.Adadelta(lr=1.0, rho=0.95, epsilon=1e-06)

损失函数是第二个参数,对于损失函数也有很多。

mean_squared_error或mse mean_absolute_error或mae
mean_absolute_percentage_er or或mape
mean_squared_logarithmic_error或msle squared_hinge hinge
categorical_hinge binary_crossentropy(亦称作对数损失,logloss) logcosh
categorical_crossentropy:亦称交叉熵损失函数,注意使用该目标函数时,需要将标签转化为形如(nb_samples,
nb_classes)的二值序列
sparse_categorical_crossentrop:如上,但接受稀疏标签。注意,使用该函数时仍然需要你的标签与输出值的维度相同,你可能需要在标签数据上增加一个维度:np.expand_dims(y,-1)
kullback_leibler_divergence:从预测值概率分布Q到真值概率分布P的信息增益,用以度量两个分布的差异.
poisson:即(predictions - targets * log(predictions))的均值
cosine_proximity:即预测值与真实标签的余弦距离平均值的相反数

训练

训练用fit函数,首先装载训练集data、label。还可以定义batch_size,epoch
一般来说对于2分类问题可以直接label装进去即可。如下

# Train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=10, batch_size=32)

多分类时,考虑把标签[1000,1]转为[1000,n]也就是tensorflow中的onehot。

# Convert labels to categorical one-hot encoding
one_hot_labels = keras.utils.to_categorical(labels, num_classes=10)# Train the model, iterating on the data in batches of 32 samples
model.fit(data, one_hot_labels, epochs=10, batch_size=32)

verbose:日志显示,0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录

预测

预测结果用到predict函数

model.predict( x, batch_size=32, verbose=0)
predict_on_batch( x)#预测一个batch

评估

对前面的metrics=[‘accuracy’]进行评估

model.evaluate( x, y, batch_size=32, verbose=1, sample_weight=None)

Keras学习笔记(一)认识序贯(Sequential)模型相关推荐

  1. 【keras】序贯Sequential模型实例之MLP的二分类

    MLP的二分类: # -*- coding: utf-8 -*- """ Created on Mon Jan 8 23:52:46 2018 序贯模型实例 @autho ...

  2. Keras学习笔记:函数式模型

    目录: 目录: 函数式(Functional)模型 第一个模型:全连接网络 多输入和多输出模型 让我们用函数式模型来实现这个框图 共享层 更多的例子 inception模型 卷积层的残差连接 共享视觉 ...

  3. Keras搭建序贯式模型

    学习Keras搭建序贯式模型,并学习使用MNIST手写数字识别例子 from tensorflow.keras import layers, models# 创建一个序贯式模型对象 model = m ...

  4. 深度学习(十)keras学习笔记

    keras学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/49095199 作者:hjimce keras与torch7的使用非常相似,是最 ...

  5. Keras学习笔记:序列式模型

    目录: 目录: 快速开始序列(Sequential)模型 指定输入数据的shape 编译 训练 例子 用于序列分类的栈式LSTM 采用stateful LSTM的相同模型 本系列参考官方文档官方文档 ...

  6. Keras学习笔记---保存model文件和载入model文件

    Keras学习笔记---保存model文件和载入model文件 保存keras的model文件和载入keras文件的方法有很多.现在分别列出,以便后面查询. keras中的模型主要包括model和we ...

  7. C语言程序设计学习笔记:P1-程序设计与C语言

    本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语 ...

  8. OPENMP学习笔记(1)——简介,模型,运行

    OPENMP学习笔记(1)--简介,模型,运行 简介: OpenMP的英文全称是Open Multiprocessing,一种应用程序接口(API,即Application Program Inter ...

  9. 学习笔记【Java 虚拟机④】内存模型

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 总目录 学习笔记[Java 虚拟机①]内存结构 学习笔记[Java 虚拟机②]垃圾回收 学习笔记[Java ...

最新文章

  1. Linux路由界面设置,nuxt中如何配置页面路由
  2. openstack服务编排
  3. 【转】桌面快捷方式不见了的解决办法
  4. 用Python2编译Python3.X的代码: __future__ 模块
  5. 使用回溯算法结合递归树+备忘录解决01背包问题
  6. 安天工程师解读CryptKeeper通用密码事件
  7. 写个爬虫,爬图片,mzitu
  8. 从零开始学OpenCV(一)——OpenCV的安装
  9. bmd硬盘测试_disk speed test mac版下载-Blackmagic Disk Speed Test for Mac(硬盘读写速度测试工具) v3.2免费版 - Mac天空...
  10. php mysql视频_PHP+MySQL视频教程
  11. 传统形态抗锯齿 2.0
  12. TypeError: ufunc ‘true_divide‘ output (typecode ‘d‘) could not be coerced to provided outp
  13. 浅析图片懒加载(三种实现方法与两种优化方式)
  14. 基于STM32+华为云IOT设计智能称重系统
  15. 测试人,测试魂,3年测遍32个城,主管的一句话给予了他源源不断的动力
  16. 【MDCC 2015】平台与技术-Android专场(上):剖析Android应用架构与设备体验
  17. Apache Curator操作zookeeper的API使用
  18. 一键装机tomcat脚本
  19. 阿里云云服务器ECS简单使用
  20. 高新技术企业认定的申报程序

热门文章

  1. TI CC1310 sub1G的SDK开发之发射功率实测
  2. shell编程4-shell嵌套循环及随机数
  3. js 如何获取服务器端的 sessionID
  4. 【二叉树经典习题讲解】
  5. element el-input 只能输入正整数完美解决不闪动
  6. python第四章答案猜数游戏_猜数游戏python
  7. 电磁兼容试验项目之辐射发射(三)
  8. 降低 cache 失效率的方法
  9. winscp普通用户上传文件没有权限解决
  10. 任正非:华为生存要靠极简组织结构