Tensorflow加载多个模型
Tensorflow 同时载入多个模型
- 标签:
- python /
- tensorflow /
- 多个模型
- 97
有时我们希望在一个python的文件空间同时载入多个模型,例如 我们建立了10个CNN模型,然后我们又写了一个预测类Predict,这个类会从已经保存好的模型restore恢复相应的图结构以及模型参数。然后我们会创建10个Predict的对象Instance,每个Instance负责一个模型的预测。
Predict的核心为:
class Predict:def __init__(self....):创建sess创建恢复器tf.train.Saver从恢复点恢复参数:tf.train.Saver.restore(...)def predict(self,...):sess.run(output,feed_dict={输入})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如果我们直接轮流生成10个不同的Predict 对象的话,我们发现tensorflow是会报类似于下面的错误:
File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_statuspywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [256,512] rhs shape= [640,512][[Node: save/Assign_14 = Assign[T=DT_FLOAT, _class=["loc:@fullcont/Variable"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/cpu:0"](fullcont/Variable, save/RestoreV2_14)]]During handling of the above exception, another exception occurred:Traceback (most recent call last):File "PREDICT_WITH_SPARK_DATAFLOW_WA.py", line 121, in <module>pre2=Predict(label=new_list[1])File "PREDICT_WITH_SPARK_DATAFLOW_WA.py", line 47, in __init__self.saver.restore(self.sess,self.ckpt.model_checkpoint_path)File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/training/saver.py", line 1560, in restore{self.saver_def.filename_tensor_name: save_path})File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 895, in runrun_metadata_ptr)File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1124, in _runfeed_dict_tensor, options, run_metadata)File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1321, in _do_runoptions, run_metadata)File "/home/jiangminghao/.local/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1340, in _do_callraise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [256,512] rhs shape= [640,512]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
关键就是:
Assign requires shapes of both tensors to match.意思是载入模型的时候 赋值失败。主要是因为不同对象里面的不同sess使用了同一进程空间下的相同的默认图graph。
正确的解决方法:
class Predict:def __init__(self....):self.graph=tf.Graph()#为每个类(实例)单独创建一个graphwith self.graph.as_default():self.saver=tf.train.import_meta_graph(...)#创建恢复器#注意!恢复器必须要在新创建的图里面生成,否则会出错。self.sess=tf.Session(graph=self.graph)#创建新的sesswith self.sess.as_default():with self.graph.as_default():self.saver.restore(self.sess,...)#从恢复点恢复参数def predict(self,...):sess.run(output,feed_dict={输入})
Tensorflow加载多个模型相关推荐
- TensorFlow 加载多个模型的方法 - 知乎 https://zhuanlan.zhihu.com/p/53642222
TensorFlow 加载多个模型的方法 - 知乎 什么是Tensorflow模型? 当你训练好一个神经网络后,你会想保存好你的模型便于以后使用并且用于生产.因此,什么是Tensorflow模型?Te ...
- TensorFlow 加载多个模型的方法
采用 TensorFlow 的时候,有时候我们需要加载的不止是一个模型,那么如何加载多个模型呢? 原文:https://bretahajek.com/2017/04/importing-multipl ...
- TensorFlow——加载和使用多个模型解决方案
解决方案 在Tensorflow中,所有操作对象都包装到相应的Session中的,所以想要使用不同的模型就需要将这些模型加载到不同的Session中并在使用的时候申明是哪个Session,从而避免由于 ...
- 人脸检测实战:使用opencv加载深度学习模型实现人脸检测
使用 OpenCV 和深度学习进行人脸检测 今天的博文分为三个部分. 在第一部分中,我们将讨论更准确的 OpenCV 人脸检测器的起源以及它们在 OpenCV 库中的位置. 然后我将演示如何使用 Op ...
- 【深度学习】Keras加载权重更新模型训练的教程(MobileNet)
[深度学习]Keras加载权重更新模型训练的教程(MobileNet) 文章目录 1 重新训练 2 keras常用模块的简单介绍 3 使用预训练模型提取特征(口罩检测) 4 总结 1 重新训练 重新建 ...
- 超图桌面版加载obj 3D模型 - 2
在 https://blog.csdn.net/bcbobo21cn/article/details/109041525 里,加载obj格式模型没有出来效果: 下面来看一下其他方法:当前用的版本是10 ...
- 超图桌面版加载obj 3D模型
根据目前看到的资料帮助,使用超图桌面版加载obj 3D模型的步骤如下: 新建场景,图层管理器---普通图层右键,新建KML----开启KML可编辑,右键添加模型. 下面来操作一下: 下一个obj模型: ...
- opengl加载显示3D模型UC类型文件
opengl加载显示3D模型UC类型文件 前置条件 注意事项 项目展示 项目完整C++源代码 前置条件 opengl三方库freeglut,显示uc格式的三维模型文件, 注意事项 源代码 model_ ...
- opengl加载显示3D模型3d类型文件
opengl加载显示3d模型UC类型文件 前置条件 注意事项 项目展示 项目完整C++源代码 前置条件 opengl三方库freeglut,显示3d格式的三维模型文件, 注意事项 源代码 model_ ...
最新文章
- Android 自定义View —— Paint
- 《Div+CSS 3.0网页布局案例精粹》扫描版[PDF]
- python爬虫吧-python爬虫-爬取百度贴吧帖子加图片
- 黑客攻击我们的11步详解及防御建议
- Nginx Rtmp Module - HLS切片和级联播放
- leetcode 贪心_贪心算法:给我最好的,现在就要!
- 2020诺奖预测出炉!“引文桂冠”奖今日公布,华人学者戴宏杰入选
- IP、ARP、RARP、ICMP、IGMP(网络协议:网络层协议)
- 执行pip安装的程序:command not found
- NOIP2018游记题解
- C使用递归实现前N个元素的和
- afc系统服务器维护,自动售检票系统AFC中央系统维护员中级业务模型.PDF
- 分享一个selenium jar包 的下载地址,各版本都有,包括selenium-server-standalone.jar、selenium、selenium-server
- java arraylist删除元素_java集合类ArrayList操作之删除remove某些元素的案例分析
- MessageBox.Show常用的2个方法
- 校园饭卡充值系统服务器配置,校园一卡通系统实施方案.doc
- 15个代理IP网站,打造免费代理IP池
- python使用pip卸载和安装库
- 18V降压3.3V,15V降压3.3V的降压IC和LDO芯片方案
- linux系统制作qcow2,centos7.6下qcow2镜像制作方法
热门文章
- api 原生hbase_HBase客户端API
- Windows - Windows批处理
- 云服务器怎么用于网站吗,云服务器怎么使用
- Spring Boot+Vue从零开始搭建系统(一):项目前端_Vuejs环境搭建
- java 数组排序论文_Java中运用数组的四种排序方法
- cx_oracle windows缺少100 dll,Windows10无法运行QQ提示缺少MSVCR100.dll的解决方案
- mysql多数据源切换_Springboot项目实现Mysql多数据源切换的完整实例
- 计算机培训专业中心架,国家高技能人才培养车工培训方案.doc
- 我的世界javaui材质包怎么下载_【我的世界指南】七、使用皮肤
- SpringBoot + Redis 解决海量重复提交问题