本系列主要是针对文档的学习,文档地址是: www.keras.io,文档非常详细。

Keras的核心数据结构就是模型,最简单的模型就是序贯模型,也就是Sequential模型,是层的线性堆砌。如果是想要更加复杂的模型,则需要用Keras Functionl API,用这个API我们就可以搭建任意复杂的模型了~~

但一般能简单的就用序贯模型。我们也从序贯模型开始。

使用方式也很简单:

from keras.models import Sequential
model = Sequential()

接着堆砌模型用.add即可,比如堆砌全连接层:

from keras.layers import Dense
model.add(Dense(units=64, activation="relu", input_dim=100))
model.add((Dense(units=10, activation="softmax"))

这里,可以看到一点是,Keras中的分层次的组织数据结构,模型是层的上级,模型都在keras.models包内,层则都在keras.layers内。
添加层时,只需要通过参数配置层即可,简单易用。

设定好模型,添加完层后,就可以compile模型了。

model.compile(loss="categorical_crossentropy",optimizer="sgd",metrics=["accuracy"])

这里示例的是简单的配置,还可以更复杂一些,同时,我们也可以用下面的方式进行配置:

model.compile(loss=keras.losses.categorical_crossentropy,optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True))

效果是一样的。

现在我们可以准备好将模型拉出来训练了~~

model.fit(x_train, y_train, epoches=5, batch_size=32)

其中,x_train, y_train都是Numpy数组,epochesbatch_size是训练需要配置的基本参数了。

上面这种是在整个训练集上进行训练,有些时候,我们需要的是在某些batch上进行训练,这也是可行的:model.train_on_batch(x_batch, y_batch)

训练完之后的模型,就可以用啦,但首先还是要看看它们的表现如何。

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

留个疑问,这里的batch_size是怎么设定的?

其他的参数是很自然的,在数据准备时,我们就划分了一部分数据留作考试用,训练时是看不到的。

根据loss_and_metrics的大小,我们就可以对模型的表现进行评价。

模型如果表现还不错的,就可以拿过来进行真刀真枪的预测啦~~

classes = model.predict(x_test, batch_size=128)

简单小结,可以看到,对模型不同阶段的运用,函数依次是:

  • fit or train_on_batch, 训练用
  • evaluate,评估用
  • predict,预测用

且只有预测时不用提供标签数据,当然也无标签~~

本文到这里为止,通过Keras的案例来学习是很棒的,地址是:https://github.com/keras-team/keras/tree/master/examples

END.

【1】Keras复习之模型,层,训练,评估与预测相关推荐

  1. 基于已有模型,训练新数据的方法

    今天碰到一个问题,训练数据随着随着时间的累计越来越多.这样如果每一次训练都把所有的样本,训练一次,既浪费资源又耽误时间.所以,希望可以时间基于已有的模型,直接训练新的数据.比如,我用第一个月的数据训练 ...

  2. 手动/自动/交叉验证评估Keras深度学习模型的性能

    Keras是Python中一个的强大而易用的库,主要用于深度学习. 在设计和配置你的深度学习模型时,需要做很多决策.大多数决定必须通过反复试错的方法来解决,并在真实的数据上进行评估. 因此,有一个可靠 ...

  3. R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型、并评估模型在测试集和训练集上的分类效果(accuray、F1、偏差Deviance):Bagging算法与随机森林对比

    R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型.并评估模型在测试集和训练集上的分类效果(accuray.F1.偏差Deviance):Bagging算法与随机森林对比 ...

  4. DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程

    DL之DNN优化技术:自定义MultiLayerNetExtend算法(BN层使用/不使用+权重初始值不同)对Mnist数据集训练评估学习过程 目录 输出结果 设计思路 核心代码 更多输出 相关文章: ...

  5. 模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)

    模型评估与模型选择 当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准. 训练误差的大小,对判定给定的问 ...

  6. 模型训练评估——交叉验证法的介绍

    与留出法相似,将数据集D划分为k个子集同样存在多种划分方式. 为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的有 ...

  7. PTMs:QLoRA技巧之源码解读(qlora.py文件)—解析命令与加载参数→数据预处理→模型训练+评估+推理

    PTMs:QLoRA技巧之源码解读(qlora.py文件)-解析命令与加载参数→数据预处理→模型训练+评估+推理 目录 QLoRA技巧之源码解读(qlora.py文件)-解析命令与加载参数→数据预处理 ...

  8. Keras的Model模型使用

    本主题主要阐述下Keras框架中的模型Model的使用,主要包含的内容:   1.模型的两种使用方式:   2.经典模型的实现(定制模型):   3.模型的定制训练: 一. 模型使用的两种方式 Ker ...

  9. Keras Sequential顺序模型

    Keras Sequential顺序模型 keras是基于tensorflow封装的的高级API,Keras的优点是可以快速的开发实验,它能够以TensorFlow, CNTK, 或者 Theano  ...

最新文章

  1. K8s简单yaml文件运行例子deployment
  2. 干货!链家二手房数据抓取及内容解析要点
  3. getComputedStyle currentStyle 获取当前元素所有最终使用的CSS属性值
  4. name optimize is not defined 怎么解决_Web前端:怎么在JavaScript中比较对象?
  5. spring data jpa 分页查询
  6. Tair持久存储系列技术解读
  7. 移动推送消息送达常见问题与解决办法
  8. kido机器人没反应_机器人不能钩的三个英雄,章鱼妈上榜,钩中图四我方直接团灭!...
  9. ddd架构 无法重构_DDD有什么用?
  10. WinForm 中自定义文件与自己的应用程序相关联
  11. h5商城模板_“公众号+小程序”才是做微信商城的正确方式
  12. jquery各历史版本下载地址
  13. CF321E Ciel and Gondolas BZOJ 5311 贞鱼
  14. paip.索引优化---sql distict—order by 法
  15. Could not find artfact com.oracle:ojdbc7:jar:12.1.0.2.0 in nexus-aliyun
  16. 好看的css按钮样式收集
  17. 哇嘎显示等待无服务器,vagaa搜索不到资源怎么回事?vagaa哇嘎搜索没反应的解决方法...
  18. matlab图片处理基本知识,Matlab图像处理基础知识
  19. Chartboost ane sdk 使用教程
  20. stlink utility

热门文章

  1. *args和**kargs
  2. mysql gtid坑_数据库mysqldump的坑
  3. sikuli python java_从命令行运行sikulix 1.1.4 python脚本
  4. oracle怎么截取long类型,Oracle 数据库中 Long 类型字段的读取
  5. python程序运行键_python实现按任意键继续执行程序
  6. linux tcp 断网重连,LIS接口与串口服务器的KeepAlive的重连机制
  7. mcrotime php_php时间函数time、date和microtime的区别 | 木凡博客
  8. Python迭代列表
  9. C#中xml序列化域反序列化
  10. 开课吧Java面试题:虚引用与软引用和弱引用的区别