input date保存值_涛哥文集(36):R keras保存和还原模型
在训练之后和训练过程中都可以保存模型进度。 这意味着模型可以从中断的地方继续进行,避免了长时间的训练。 保存还意味着您可以共享模型,而其他人可以重新创建您的作品。 在发布研究模型和技术时,大多数机器学习从业者分享:
- 创建模型的代码,以及
- 模型的训练权重或参数
共享这些数据可帮助其他人了解模型的工作原理,并使用新数据自己尝试。
设定
我们将使用MNIST数据集来训练我们的模型,以演示如何保存权重。 为了加快这些演示运行,仅使用前1000个示例:
library(keras)mnist % array_reshape(c(1000, 28 * 28))train_images % array_reshape(c(1000, 28 * 28))test_images
定义模型
让我们建立一个简单的模型,以演示如何保存和加载权重。
# Returns a short sequential modelcreate_model % layer_dense(units = 512, activation = "relu", input_shape = 784) %>% layer_dropout(0.2) %>% layer_dense(units = 10, activation = "softmax") model %>% compile( optimizer = "adam", loss = "sparse_categorical_crossentropy", metrics = list("accuracy") ) model}model % summary()
保存整个模型
保存Keras模型的习惯形式是保存为HDF5格式。
生成的文件包含权重值,模型的配置,甚至优化器的配置。 这使您可以保存模型并稍后从完全相同的状态恢复训练,而无需访问原始代码。
model % fit(train_images, train_labels, epochs = 5)model %>% save_model_hdf5("my_model.h5")
如果您只想保存权重,则可以将最后一行替换为
model %>% save_model_weights_hdf5("my_model_weights.h5")
现在从该文件重新创建模型:
new_model % summary()
在训练期间保存检查点
在训练期间和训练结束时自动保存检查点非常有用。这样,您可以使用受过训练的模型,而无需重新训练它,也可以在您离开的地方进行训练,以防训练过程中断。
callback_model_checkpoint是执行此任务的回调。
回调使用几个参数来配置检查点。默认情况下,save_weights_only设置为false,这意味着将保存完整的模型-包括体系结构和配置。然后,您可以按照上一段所述还原模型。
现在,让我们集中讨论仅保存和恢复权重。在以下代码段中,我们将save_weights_only设置为true,因此在还原时需要模型定义。
filepath参数可以包含命名的格式选项,例如:如果文件路径为权重。{epoch:02d}-{val_loss:.2f} .hdf5,则模型检查点将与时期号一起保存,文件名中的验证丢失。
保存的模型权重将再次为HDF5格式。
检查点回调用法
训练模型并将其传递给callback_model_checkpoint:
checkpoint_dir % fit( train_images, train_labels, epochs = 10, validation_data = list(test_images, test_labels), callbacks = list(cp_callback) # pass callback to training)
检查创建的文件:
list.files(checkpoint_dir)
创建一个新的未经训练的模型。 仅从权重还原模型时,必须具有与原始模型具有相同体系结构的模型。 由于它是相同的模型架构,因此尽管模型是不同的实例,我们仍可以共享权重。
现在重建一个新的,未经训练的模型,并在测试集上对其进行评估。 未经训练的模型将以机会级别(〜10%的准确性)执行:
fresh_model % evaluate(test_images, test_labels)cat('Test loss:', score$loss, '')cat('Test accuracy:', score$acc, '')
然后从最新的检查点(第10步)加载权重,然后重新评估:
fresh_model %>% load_model_weights_hdf5( file.path(checkpoint_dir, "weights.10-0.42.hdf5"))score % evaluate(test_images, test_labels)cat('Test loss:', score$loss, '')cat('Test accuracy:', score$acc, '')
为了减少文件数量,您还可以在第n个时间段仅保存一次模型权重。 例如,
checkpoint_dir % fit( train_images, train_labels, epochs = 10, validation_data = list(test_images, test_labels), callbacks = list(cp_callback) # pass callback to training)list.files(checkpoint_dir)
另外,您也可以决定仅保存最佳模型,默认情况下,最佳模型定义为验证损失。 有关更多信息,请参见callback_model_checkpoint的文档。
checkpoint_dir % fit( train_images, train_labels, epochs = 10, validation_data = list(test_images, test_labels), callbacks = list(cp_callback) # pass callback to training)
在这种情况下,权重在第6和第7个时期均已保存,但验证损失没有改善。
input date保存值_涛哥文集(36):R keras保存和还原模型相关推荐
- python 卡方分布值_饱和模型与偏差计算R方与p值
引言:logistic回归中,我们了解到R2和P值的计算方法.但josh starmer老师指出,广义线性模型中R2更常见的计算方法还包括饱和模型(参考:Logistic回归:R2与P-value的计 ...
- mysql date 默认值_通过Oracle DB了解MySQL
Oracle数据库是业界的翘楚,各行各业拥有大量的Oracle DB的DBA,本文尝试通过将Oracle与MySQL数据库的架构.安全.模式对象.数据类型及数据存储进行对比,以方便熟悉Oracle数据 ...
- formdata.append加多个值_呆哥数学每日一题 —— 多个最值函数混合向量
如果想要获取往期每日一题电子版,可以加我微信:daigemath166,备注:知乎 每日一题 呆哥解析: 这是一道多个最值函数混合向量的问题 首先看到这种一大堆条件的题目,我们先不要觉得麻烦,先把可以 ...
- ios 获取一个枚举的所有值_凯哥带你从零学大数据系列之Java篇---第十一章:枚举...
温馨提示:如果想学扎实,一定要从头开始看凯哥的一系列文章(凯哥带你从零学大数据系列),千万不要从中间的某个部分开始看,知识前后是有很大关联,否则学习效果会打折扣. 系列文章第一篇是拥抱大数据:凯哥带你 ...
- 用户dsn保存位置‘_苹果iOS 13.6终于能保存文章阅读进度了 朋友都等秃了
几天前,iOS 13.6 Beta 2和iPadOS 13.6 Beta 2发布,据外媒iPhoneHacks消息,苹果此次通过新软件更新对Apple News应用程序进行了改进,更新后的iOS 13 ...
- 单片机断电后不保存程序_法兰购买到货后直接入库保存?不不不,还需要做一件事情...
法兰在管道工程中是较为常见的零件.在管道工程中,法兰主要用于管道的连接,在需要连接的管道,各安装一片法兰盘,低压管道可以使用丝接法兰,4公斤以上压力的使用焊合法兰:低压小直径有丝接法兰,高压和低压大直 ...
- safari保存视频_如何使用Safari的“阅读列表”保存文章供以后使用
safari保存视频 We're fond of any app that will allow you to save a webpage to read later, and there are ...
- python保存灰度图像_如何使用matplotlib/numpy将数组保存为灰度图像?
我正在尝试将一个尺寸为128x128像素的numpy数组保存为灰度图像. 我只是简单地认为pyplot.imsave函数可以完成这项工作,但事实并非如此,它以某种方式将我的数组转换为RGB图像. 我试 ...
- python中如何保存文件_如何在python中处理后保存文件?
我需要在处理后将所有文章放入同一文件夹,或者创建一个CSV文件.from bs4 import BeautifulSoup import glob import os, os.path path = ...
最新文章
- IBM AI辩手对战世界级人类辩手,炒作还是秀肌肉?
- MySQL8.0.16主从同步
- 计算机组成原理实用教程课后答案,王万生《计算机组成原理实用教程》课后习题答案..doc...
- 12.结账流程(Checkout Process)
- 第二阶段团队冲刺02
- Gensim进阶教程
- 2020最新 程序员数学(基础+进阶)
- AspnetPager
- 八皇后问题(Queen8)思路分析+源码
- 联想拯救者笔记本安装ubuntu系统不能正常关机
- 浅谈border-radius对border的影响
- 快速提升自身思维能力的方法总结
- [计算机]防止电脑进入锁屏
- linux小红帽实验心得,小红帽读书心得(精选4篇)
- 修改数据文件patch工具
- 关于.m4s音视频文件合成.mp4文件的方法
- Clustering and Exploring Search Results using Timeline Constructions (paper2)
- Numpy库中einsum函数用法
- MySQL常用关键字
- JAVA学习---从头开始WEEK03