flask keras 多线程环境下加载模型

keras 多线程环境下加载模型
Tensor Tensor is not an element of this graph.

问题场景

keras 使用flask 发布深度学习模型服务,模型有一个定时任务(新开了一条线程)来进行训练以及重新加载,出现了错误。

Tensor Tensor("dense_1/Sigmoid:0", shape=(?, 59), dtype=float32) is not an element of this graph.

原因

在Tensorflow中,所有操作对象都包装到相应的Session中的,所以想要使用不同的模型就需要将这些模型加载到不同的Session中并在使用的时候申明是哪个Session,从而避免由于Session和想使用的模型不匹配导致的错误。而使用多个graph,就需要为每个graph使用不同的Session,但是每个graph也可以在多个Session中使用,这个时候就需要在每个Session使用的时候明确申明使用的graph。
在调用keras的tensorflow的应用程序中,保证tensorflow的模型是单线程加载的。如果多线程加载模型的话,必须制定的Graph,以及session。

代码

1.定义class

class Tfmodel:
    # 模型
    __model = object
    # 模型版本
    __model_version = 0
    # 词向量模型
    __word_vector = object
    # 图
    __graph = object

    # session
    __session
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值