首页 > 其他分享 >【人工智能】深度学习框架值TF入门-模型保存与加载

【人工智能】深度学习框架值TF入门-模型保存与加载

时间:2023-08-20 21:11:22浏览次数:34  
标签:人工智能 模型 保存 tf TF model save 加载

资料:https://tensorflow.google.cn/tutorials/keras/save_and_load#选项

Keras的方式

Keras版本模型保存与加载

函数

保存模型权重:model.save_weights
保存HDF5文件:model.save
保存pb文件:tf.saved_model

tf.saved_modelmodel.save的区别在于,tf.saved_model格式的模型可以直接用来预测,但是tf.saved_model没有保存优化器配置,而model.save保存了优化器配置,所以整体更大。

保存模型权重方法仅仅保存了模型中的权重,而保存模型文件的model.save可以将模型和优化器一起保存,包括权重(weights)、模型配置(architecture)和优化器配置(optimizer configuration)。这样做的好处是,当你恢复模型时,完全不依赖于原来搭建模型的代码。

保存完整的模型有很多应用场景,比如在浏览器中使用TensorFlow.js加载运行,比如在移动设备上使用TensorFlow Lite加载运行。

使用

保存为pd格式

保存:model.save("要保存的目录名称")

读取:model = tf.keras.models.load_model('保存模型的目录名称')

保存为hdf5格式

同上,只是写的不再是目录名称,而是'xxx.h5'

注意:

如果发生报错:model_config = json.loads(model_config.decode('utf-8'))

原因:tensorflow2.1.0支持h5py<3.0.0 而在安装tensorflow会自动安装h5py 3.1.0 。

旧版本的方式(v1.x)

我没安装这个版本的tensorflow,没有经过测试

函数

函数:tf.train.Saver(var_list=none,max_to_keep=5)

  • 保存和加载模型,文件格式:checkpoint文件(扩展名:ckpt)
  • var_list:指定要保存和还原的变量,可以作为一个dict或一个列表传递
  • max_to_keep:指示要保留的最近检查点文件的最大数量。创建新文件时,会删除较旧的文件,如果无或者0,则保留所有检查点文件。默认为5(保留最新的5个检查点文件)

使用方法

旧版本使用办法)(1.x)

saver = tf.train.Saver()
saver.save(Model,"./路径/文件名.ckpt")
saver.restore(Model,"./路径/文件名.ckpt")

标签:人工智能,模型,保存,tf,TF,model,save,加载
From: https://www.cnblogs.com/mllt/p/20230820ai2.html

相关文章

  • 人工智能在金融领域的崭露头角-自动化决策与风险管理的突破
    随着科技的不断发展和人工智能技术的日益成熟,人工智能在各个领域都展现出了巨大的潜力。其中,金融领域作为一个信息密集度极高、且需要实时决策的行业,对于人工智能的应用尤为重要。本文将探讨人工智能在金融领域中的崭露头角,并着重分析其在自动化决策与风险管理方面的突破。自动化......
  • Vue-Router 的懒加载如何实现
    非懒加载:importListfrom'@/components/list.vue'constrouter=newVueRouter({routes:[{path:'/list',component:List}]}) 懒加载:1.使用箭头函数+import动态加载constList=()=>import('@/components/list.vue')constroute......
  • dasctf2023 june toka garden & bios-mbr os 启动流程
    前言被纯真拉来看题楽。日常忏悔没有学好操作系统。借着dasctf6tokagarden了解了下操作系统bios-mbr的启动流程。bios-mbr启动流程启动(boot)一词来自于一句谚语"pulloneselfupbyone'sbootstraps"("拽着鞋带把自己拉起来")这当然是不可能的事情。最早的时候,工程师......
  • 从JDK源码级别彻底剖析JVM类加载机制
    类加载运行全过程当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。publicclassMath{publicstaticfinalintinitData=666;publicstaticUseruser=newUser();publicintcompute(){//一个方法对应一块栈帧......
  • 跨界融合:人工智能与互联网、物联网的碰撞
    随着科技的快速发展,人工智能(ArtificialIntelligence,AI)已经成为推动社会进步和经济增长的重要驱动力之一。然而,仅仅依赖于人工智能技术本身并不足够,我们需要将其与其他领域进行跨界融合,以实现更广泛的应用和创新。本文将深入探讨人工智能与互联网、物联网的碰撞,探讨其在各个领域中......
  • JavaScript性能优化指南:加速前端应用的加载速度
    在当今互联网发展迅猛的时代,用户对于网页加载速度的要求也越来越高。JavaScript是前端开发中不可或缺的一部分,但它也可能成为网页加载变慢的原因之一。本篇文章将带您了解一些JavaScript性能优化的最佳实践,以加速前端应用的加载速度。1.压缩和合并JavaScript文件减少JavaScrip......
  • 手把手教你使用人工智能生成游戏 3D 素材
    引言生成式AI已成为游戏开发中艺术工作流的重要组成部分。然而,正如我在之前的文章中描述的,从文本到3D的实用性仍落后于2D。不过,这种情况正在改变。本文我们将重新审视3D素材生成的实用工作流程,并逐步了解如何将生成型AI集成到PS1风格的3D工作流中。为什么选择P......
  • CTFer成长记录——CTF之Web专题·bugku—never_give_up
    一、题目链接https://ctf.bugku.com/challenges/detail/id/88.html二、解法步骤  打开网页,url中看到id=1,修改成2、3、4发现无反应。然后查看网页源代码:,提示一个网址,直接访问看看:发现url跳转到了bugku的论坛:    BP抓1p.html网页的包,在返回包中发现一串密文:  --JTI......
  • 饥饿加载
    Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:ribbon:eager-load:enabled:trueclients:userservice ......
  • Gitflow分支管理模型
    1前言Gitflow是一个Git分支管理模型,由VincentDriessen于2010年发布在其个人网站的一篇博文中《AsuccessfulGitbranchingmodel》,该模型适用于多版本管理的项目,能够有效的促进团队成员之间的协作,提升代码的清晰度。2概览Gitflow工作流程如下:如上图,Gitflow流程中......