TensorFlow -- 模型保存与读取

简介: 最近学习Google的深度学习框架TensorFlow,CNN模型训练什么的都是OK的,官方也有代码,文章请参照: 但是在实际使用的时候不可能每次预测都训练一遍模型,这样太浪费时间,所以需要我们在训练完成的时候保存模型,并且在需要预测的时候加载。

最近学习Google的深度学习框架TensorFlow,CNN模型训练什么的都是OK的,官方也有代码,中文详解请参照:
http://www.soaringroad.com/?p=115

但是在实际使用的时候不可能每次预测都训练一遍模型,这样太浪费时间,所以需要我们在训练完成的时候保存模型,并且在需要预测的时候加载。官方提供的例子和解释不够具体,让我踩了很多的坑,所以写个笔记分享一下,希望帮助大家跳过或者少踩这些坑。

模型保存:

①首先对于需要保存的变量进行定义,记得variable和placeholder保存用变量名的定义一定不能忘了

定义的形式大体上如下:

var_name_1= tf.Variable(........,name='var_name_1_store')
var_name_2= tf.argmax(var_name_1,name='var_name_2_store')
var_name_3=tf.placeholder(........,name='var_name_3_store')
var_name_4=tf.matmul(var_name_1,var_name_3,name='var_name_4_store')

②其次就是保存处理

需要利用 tf.train.Saver来保存模型,其中global_step不定义的情况下,默认为0

saver = tf.train.Saver()
saver.save(sess,'./data.chkp',global_step=XX)

模型加载:

①首先读取刚刚保存的meta文件,然后全局变量初始化,需要用到tf.train.import_meta_graph

saver = tf.train.import_meta_graph("./data.chkp.meta")
sess.run(tf.global_variables_initializer())

②其次加载我们需要的变量,并预测,这里用到var_name_3_store,这就是为什么前面placeholder定义的时候一定要定义name

 predict = tf.get_default_graph().get_tensor_by_name("var_name_4_store:0")
 predict.eval(feed_dist={'var_name_3_store':XXXXX})

 

相关文章
|
3月前
|
机器学习/深度学习 TensorFlow API
TensorFlow与Keras实战:构建深度学习模型
本文探讨了TensorFlow和其高级API Keras在深度学习中的应用。TensorFlow是Google开发的高性能开源框架,支持分布式计算,而Keras以其用户友好和模块化设计简化了神经网络构建。通过一个手写数字识别的实战案例,展示了如何使用Keras加载MNIST数据集、构建CNN模型、训练及评估模型,并进行预测。案例详述了数据预处理、模型构建、训练过程和预测新图像的步骤,为读者提供TensorFlow和Keras的基础实践指导。
255 59
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
57 1
|
20天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
43 0
|
20天前
|
C# 开发者 前端开发
揭秘混合开发新趋势:Uno Platform携手Blazor,教你一步到位实现跨平台应用,代码复用不再是梦!
【8月更文挑战第31天】随着前端技术的发展,混合开发日益受到开发者青睐。本文详述了如何结合.NET生态下的两大框架——Uno Platform与Blazor,进行高效混合开发。Uno Platform基于WebAssembly和WebGL技术,支持跨平台应用构建;Blazor则让C#成为可能的前端开发语言,实现了客户端与服务器端逻辑共享。二者结合不仅提升了代码复用率与跨平台能力,还简化了项目维护并增强了Web应用性能。文中提供了从环境搭建到示例代码的具体步骤,并展示了如何创建一个简单的计数器应用,帮助读者快速上手混合开发。
30 0
|
20天前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
31 0
|
20天前
|
前端开发 开发者 设计模式
揭秘Uno Platform状态管理之道:INotifyPropertyChanged、依赖注入、MVVM大对决,帮你找到最佳策略!
【8月更文挑战第31天】本文对比分析了 Uno Platform 中的关键状态管理策略,包括内置的 INotifyPropertyChanged、依赖注入及 MVVM 框架。INotifyPropertyChanged 方案简单易用,适合小型项目;依赖注入则更灵活,支持状态共享与持久化,适用于复杂场景;MVVM 框架通过分离视图、视图模型和模型,使状态管理更清晰,适合大型项目。开发者可根据项目需求和技术栈选择合适的状态管理方案,以实现高效管理。
28 0
|
1月前
|
机器学习/深度学习 IDE API
【Tensorflow+keras】Keras 用Class类封装的模型如何调试call子函数的模型内部变量
该文章介绍了一种调试Keras中自定义Layer类的call方法的方法,通过直接调用call方法并传递输入参数来进行调试。
21 4
|
30天前
|
缓存 Linux TensorFlow
更改 TensorFlow Hub 模型的缓存位置
更改 TensorFlow Hub 模型的缓存位置
30 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
服装识别系统,本系统作为图像识别方面的一个典型应用,使用Python作为主要编程语言,并通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对18种不同的服装('黑色连衣裙', '黑色衬衫', '黑色鞋子', '黑色短裤', '蓝色连衣裙', '蓝色衬衫', '蓝色鞋子', '蓝色短裤', '棕色鞋子', '棕色短裤', '绿色衬衫', '绿色鞋子', '绿色短裤', '红色连衣裙', '红色鞋子', '白色连衣裙', '白色鞋子', '白色短裤')数据集进行训练,最后得到一个识别精度较高的H5格式模型文件,然后基于Django搭建Web网页端可视化操作界面,实现用户在界面中
93 1
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
|
2月前
|
TensorFlow 算法框架/工具 C++
构建NLP 开发问题之如何将模型导出为 ONNX、TensorRT 或 Tensorflow 格式以便部署
构建NLP 开发问题之如何将模型导出为 ONNX、TensorRT 或 Tensorflow 格式以便部署

热门文章

最新文章